Diferencia entre grep() y grepl() en R – Part 1

En este artículo, discutiremos la diferencia entre grep() y grepl() en el lenguaje de programación R.

grep()

Esta función grep() en lenguaje R permite a los programadores buscar una coincidencia de un patrón particular en la colección de strings dada. La sintaxis se da a continuación,

Sintaxis:   grep(stringPattern, x, ignore.case=VERDADERO o FALSO, valor=VERDADERO o FALSO)

Parámetros:  

  • stringPattern: un patrón que debe coincidir con los elementos dados de la string.
  • x: vector de string especificado.
  • ignore.case: Si su valor es TRUE, ignora mayúsculas y minúsculas.
  • valor: si su valor es VERDADERO, devuelve el vector de elementos coincidentes, de lo contrario, devuelve el vector de índices.

Ejemplo 1:

R

# R program to illustrate
# grep function
  
# Initializing a string vector
x <- c("GeeksforGeeks", "Bhuwanesh", "Nainwal", "gfg")
  
# Calling grep() function
grep("GeeksforGeeks", x)
grep("Bhuwanesh", x)
grep("gfg", x, ignore.case = FALSE)
grep("Nainwal", x, ignore.case = TRUE)

Producción:

Ejemplo 2:

R

# R program to illustrate
# grep function
  
# Creating string vector
x <- c("GeeksforGeeks", "Bhuwanesh", "Nainwal", "gfg")
  
# Calling grep() function
grep("gfg", x, ignore.case = TRUE, value = TRUE)
grep("Bhuwanesh", x, ignore.case = TRUE, value = TRUE)
grep("GeeksforGeeks", x, ignore.case = FALSE, value = FALSE)
grep("Nainwal", x, ignore.case = FALSE, value = FALSE)        

Producción:

grepl()

Esta función grepl() en lenguaje R devuelve el valor True si el patrón especificado se encuentra en el vector y false si no se encuentra.

La sintaxis se da a continuación,

Sintaxis: grepl(stringPattern, string, ignore.case=FALSE)

Parámetros:  

  • stringPattern: el patrón de string que se buscará
  • string: vector de caracteres sobre el que se realizará la búsqueda
  • 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:

R

# R program to illustrate
# grepl function
  
# Initializing a string vector
str <- c("GeeksforGeeks", "Bhuwanesh", "Nainwal", "gfg")
  
# Calling grepl() function
grepl("GeeksforGeeks", str)
grepl("Bhuwanesh", str)
grepl("gfg", str)
grepl("Nainwal", str)

Producción:

Ejemplo 2:

R

# R program to illustrate
# grepl function
  
# Creating string vector
x <- c("GeeksforGeeks", "Bhuwanesh", "Nainwal", "gfg")
  
# Calling grepl() function
grepl("gfg", x, ignore.case = TRUE)
grepl("Bhuwanesh", x, ignore.case = TRUE)
grepl("GeeksforGeeks", x, ignore.case = TRUE)
grepl("Nainwal", x, ignore.case = TRUE)        

Producción:

Diferencia entre grep() y grepl()

La mayoría de las veces estas dos funciones se consideran iguales. Aunque ambas funciones se utilizan para verificar si un patrón particular coincide en la colección de strings dada, difieren en los tipos de salida que devuelven. 

  • grep(): Esta función devuelve un vector de índices de las strings de caracteres que contienen el patrón.
  • grepl(): esta función devuelve VERDADERO si existe un patrón en una string de caracteres.

Ejemplo:

En este ejemplo, estamos buscando el patrón «GeeksforGeeks» en el vector de datos usando la función grep(), devuelve 1 ya que este patrón está ubicado en el índice 1 en el vector dado. Además, estamos buscando el patrón «Bhuwanesh» en el mismo vector pero usando la función grepl() esta vez, y devuelve un conjunto de valores booleanos que describen si el i-ésimo elemento del vector contiene este patrón o no.

R

# create a vector of data
data <- c("GeeksforGeeks", "gfg", "Bhuwanesh",
          "Nainwal", "Swift")
  
grep("GeeksforGeeks", data)
grepl("Bhuwanesh", data) 

Producción:

¿Cuándo se debe usar grep()?

Se prefiere grep para seleccionar columnas seleccionadas en función del nombre de la columna.

Ejemplo: En este ejemplo, hemos seleccionado columnas enteras que tienen el carácter ‘S’ en el nombre del encabezado.

R

library(dplyr)
  
# creating a data frame
df <- data.frame(Department = c('CSE', 'IT',
                                'ECE', 'EE', 
                                'ME'),
                 Strength = c(80, 76, 75, 65, 70),
                 Score = c(75, 70, 65, 60, 60))
  
# select columns that contain the string 
# 'S' in their name
df %>% select(grep('S', colnames(df)))

Producción:

Cuente el número de filas que contienen una determinada string. La función grep() debe usarse para contar el número de filas en el marco de datos dado que coincide con una determinada string.

Ejemplo: En este ejemplo, hemos contado el número de filas en las que el encabezado tiene una ‘S’.

R

library(dplyr)
  
# creating a data frame
df <- data.frame(Department = c('CSE', 'IT', 'ECE',
                                'EE', 'ME'),
                 Strength = c(80, 76, 75, 65, 70),
                 Score = c(75, 70, 65, 60, 60))
  
# select and count columns that contain
# the string 'S' in their name
df %>% length(grep('S', colnames(df)))

Producción:

¿Cuándo se debe usar grepl()?

grepl() debe usarse para filtrar filas en un marco de datos que contiene una string en particular.

Ejemplo: En este ejemplo, hemos filtrado filas según el valor de fuerza 75.

R

library(dplyr)
  
# creating a data frame
df <- data.frame(Department = c('CSE', 'IT', 'ECE', 
                                'EE', 'ME'),
                 Strength = c(80, 75, 75, 65, 70),
                 Score = c(75, 70, 65, 60, 60))
  
# filter rows that contain the string
# 75 in the Strength column
df %>% filter(grepl(75, Strength))

Producción:

Publicación traducida automáticamente

Artículo escrito por bhuwanesh 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 *