Comparando grep () vs grepl () en R: ¿Cuál es la diferencia?

Dos funciones que la gente suele confundir en R son grep () y grepl () . Ambas funciones le permiten ver si un patrón determinado existe en una cadena de caracteres, pero devuelven resultados diferentes:

  • grepl () devuelve VERDADERO cuando existe un patrón en una cadena de caracteres.
  • grep () devuelve un vector de índices de las cadenas de caracteres que contienen el patrón.

El siguiente ejemplo ilustra esta diferencia:

#crear un vector de datos
datos <- c ('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center')

grep ('Guardia', datos)
[1] 1 2

grepl ('Guardia', datos)
[1] VERDADERO VERDADERO FALSO FALSO FALSO

Los siguientes ejemplos muestran cuándo es posible que desee utilizar una de estas funciones sobre la otra.

Cuándo usar grepl ()

1. Filtrar filas que contienen una determinada cadena

Uno de los usos más comunes de grepl () es para filtrar filas en un marco de datos que contienen una determinada cadena:

biblioteca (dplyr)

#create marco de datos
df <- data.frame (player = c ('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 puntos = c (12, 15, 19, 22, 32),
                 rebotes = c (5, 7, 7, 12, 11))

#filtrar filas que contienen la cadena 'Guard' en la columna del jugador
 df%>% filter ( grepl ('Guard', player))

   rebotes de puntos de jugador
1 P Guardia 12 5
2 S Guardia 15 7

Relacionado Cómo filtrar filas que contienen una determinada cadena usando dplyr

Cuándo usar grep ()

1. Seleccione columnas que contengan una determinada cadena

Puede usar grep () para seleccionar columnas en un marco de datos que contengan una determinada cadena:

biblioteca (dplyr)

#create marco de datos
df <- data.frame (player = c ('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 puntos = c (12, 15, 19, 22, 32),
                 rebotes = c (5, 7, 7, 12, 11))

#seleccionar columnas que contengan la cadena 'p' en su nombre
 df%>% select ( grep ('p', colnames (df)))

     puntos de jugador
1 P Guardia 12
2 S Guardia 15
3 S Adelante 19
4 P Adelante 22
5 Centro 32

2. Cuente el número de filas que contienen una determinada cadena

Puede usar grep () para contar el número de filas en un marco de datos que contienen una determinada cadena:

#create marco de datos
df <- data.frame (player = c ('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 puntos = c (12, 15, 19, 22, 32),
                 rebotes = c (5, 7, 7, 12, 11))

#contar cuántas filas contienen la cadena 'Guard' en la longitud de la columna del jugador
 ( grep ('Guard', df $ player))

[1] 2

Puede encontrar más tutoriales de R aquí .

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

La desviación absoluta media es una forma de medir la dispersión de un conjunto de valores de datos. Un valor…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!