Coincidencia de strings en la programación R

La coincidencia de strings es un aspecto importante de cualquier idioma. Es útil para encontrar, reemplazar y eliminar strings. Para comprender la coincidencia de strings en R Language , primero debemos comprender qué funciones relacionadas están disponibles en R. Para hacerlo, podemos usar las strings coincidentes o las expresiones regulares. Una expresión regular es una string que contiene símbolos y caracteres especiales para buscar y extraer la información necesaria de los datos dados. Las expresiones regulares son básicamente strings que contienen caracteres y símbolos especiales. Para obtener más información sobre las expresiones regulares .

Operaciones en coincidencia de strings

Encontrar una string

Para buscar un patrón particular en una string, podemos usar muchas funciones. Si necesitamos encontrar la ubicación de la string/patrón requerido, podemos usar el método grep(). Por otro lado, si solo necesitamos saber si el patrón existe o no, podemos usar la función lógica grepl()que devuelve Verdadero o Falso según el resultado. Aprendamos más sobre los métodos.

  • Función grep(): Devuelve el índice en el que se encuentra el patrón en el vector. Si hay varias ocurrencias del patrón, devuelve una lista de índices de las ocurrencias. Esto es muy útil ya que no solo nos informa sobre la aparición del patrón sino también sobre su ubicación en el vector.

    Sintaxis:
    grep(patrón, string, ignore.case=FALSE)

    Parámetros:
    patrón: un patrón de expresiones regulares.
    string: El vector de caracteres que se buscará.
    ignore.case: Si ignorar mayúsculas y minúsculas en la búsqueda. Aquí ignore.case es un parámetro opcional ya que está configurado en FALSO de forma predeterminada.

    Ejemplo 1: Para encontrar todas las instancias de ‘él’ en la string.

    str <- c("Hello", "hello", "hi", "hey")
    grep('he', str)

    Producción:

    [1] 2 4
    

    Como notó en el ejemplo anterior, ‘Él’ no se consideró debido a la diferencia en los casos de ‘H’ y ‘h’. Pero si uno quiere que los casos sean ignorados, el parámetro ignore.case a True, que por defecto está configurado como False.

    Ejemplo 2: para encontrar todas las instancias de ‘él’ en la string, independientemente del caso

    str <- c("Hello", "hello", "hi", "hey")
    grep('he', str, ignore.case ="True")

    Producción:

    [1] 1 2 4
    
  • Función grepl(): Es una función lógica que devuelve el valor True si el patrón especificado se encuentra en el vector y false si no se encuentra.

    Sintaxis:
    grepl(patrón, string, ignore.case=FALSE)

    Parámetros:
    patrón: un patrón de expresiones regulares.
    string: El vector de caracteres que se buscará.
    ignore.case: Si ignorar mayúsculas y minúsculas en la búsqueda. Aquí ignore.case es un parámetro opcional ya que está configurado en FALSO de forma predeterminada.

    Ejemplo 1: para averiguar si alguna instancia de ‘the’ está presente en la string.

    str <- c("Hello", "hello", "hi", "hey")
    grepl('the', str)

    Producción:

    [1] FALSE
    

    Ejemplo 2: para encontrar si alguna instancia de ‘él’ está presente en la string.

    str <- c("Hello", "hello", "hi", "hey")
    grepl('he', str)

    Producción:

    [1] TRUE
    
  • Función regexpr(): busca ocurrencias de un patrón en cada elemento de la string. Por ejemplo, si un vector consta de strings ‘n’, se busca el patrón en todas las strings ‘n’. Si se encuentra el patrón, se devuelve el índice del patrón. Si no se encuentra, se devuelve -1. Por lo tanto, el tamaño del vector de salida devuelto es igual al tamaño de la entrada.

    Sintaxis:
    regexpr(patrón, string, ignore.case = FALSE)

    Parámetros:
    patrón: Un patrón de expresión regular.
    string: el vector de caracteres que se buscará, donde cada elemento se busca por separado.
    ignore.case: Si ignorar mayúsculas y minúsculas en la búsqueda. Aquí ignore.case es un parámetro opcional ya que está configurado en FALSO de forma predeterminada.

    Ejemplo 1: encontrar si alguna instancia de ‘él’ está presente en cada string del vector.

    str <- c("Hello", "hello", "hi", "ahey")
    regexpr('he', str)

    Producción:

    [1] -1  1 -1  2
    

    Ejemplo 2: Encontrar si alguna instancia de palabras que comienzan con una vocal está presente en cada string del vector.

    str <- c("abra", "Ubra", "hunt", "quirky")
    regexpr('^[aeiouAEIOU]', str)

    Producción:

    [1]  1  1 -1 -1

    Ejemplo 3: Encontrar si cada string es del patrón ’10+1′ del vector.

    str <- c("1001", "11", "10012", "101")
    regexpr('10 + 1$', str)

    Producción:

    [1]  1 -1 -1  1

Encontrar y reemplazar strings

Para buscar y reemplazar una string en particular, podemos usar dos funciones, a saber, sub() y gsub() . sub reemplaza la única primera aparición de la string que se va a reemplazar y devuelve la string modificada. gsub(), por otro lado, reemplaza todas las apariciones de la string que se va a reemplazar y devuelve la string modificada.

Sintaxis:
sub(patrón, string_reemplazada, string)
gsub(patrón, string_reemplazada, string)

Parámetros:
patrón: un patrón de expresiones regulares.
string: el vector que se buscará para instancias del patrón que se reemplazará.
ignore.case: Si ignorar mayúsculas y minúsculas en la búsqueda. Aquí ignore.case es un parámetro opcional ya que está configurado en FALSO de forma predeterminada.

Ejemplo 1: Para reemplazar la primera aparición de ‘he’ con ‘aa’

str = "heutabhe"
sub('he', 'aa', str)

Producción:

aautabhe

Ejemplo 2: Reemplazar todas las apariciones de ‘he’ con ‘aa’

str = "heutabhe"
gsub('he', 'aa', str)

Producción:

[1] "aautabaa"

Búsqueda y eliminación de strings

Para buscar y eliminar una string/patrón en particular, podemos usar dos funciones, a saber, str_remove()y str_remove_all(). str_remove()elimina la única primera aparición de la string/patrón que se va a eliminar y devuelve la string modificada. str_remove_all()por otro lado, elimina todas las apariciones de la string que se eliminará y devuelve la string modificada.

Sintaxis:
str_remove(string, patrón, ignore.case=False)

Parámetros:
patrón: un patrón de expresiones regulares.
string: el vector de caracteres que se buscará para las instancias del patrón que se eliminará.
ignore.case: Si ignorar mayúsculas y minúsculas en la búsqueda. Aquí ignore.case es un parámetro opcional ya que está configurado en FALSO de forma predeterminada.

Ejemplo 1: Eliminar la primera aparición de vocales en el vector

library(stringr)
x <- c("apple", "pear", "banana")
str_remove(x, "[aeiou]")

Producción:

[1] "pple"  "par"   "bnana"

Ejemplo 2: eliminar todas las apariciones de vocales en el vector

library(stringr)
x <- c("apple", "pear", "banana")
str_remove_all(x, "[aeiou]")

Producción:

[1] "ppl" "pr"  "bnn"

Publicación traducida automáticamente

Artículo escrito por srishtirajani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *