Use grepl para encontrar coincidencias para cualquier cadena de caracteres en el vector de caracteres R
-
Utilice las funciones
grep
ogrepl
para buscar coincidencias de patrones en R -
Utilice
grepl
para hacer coincidir cualquier cadena de caracteres en el vector de caracteres R
Este artículo discutirá varios métodos de uso de grepl
para encontrar coincidencias para cualquier cadena de caracteres en el vector de caracteres R.
Utilice las funciones grep
o grepl
para buscar coincidencias de patrones en R
grep
se utiliza para la coincidencia de patrones en un vector de caracteres. Toma el argumento de patrón como una expresión regular que se corresponde con la función en consecuencia. grep
devuelve vectores de índices para elementos coincidentes de forma predeterminada, pero también puede devolver un vector de caracteres de elementos coincidentes si el usuario asigna TRUE
al parámetro value
. Por otro lado, grepl
devuelve un vector de valores booleanos que indica si el elemento correspondiente coincide con el patrón o no. El siguiente ejemplo demuestra las letras del alfabeto que coinciden con cualquier letra del alfabeto, y obtenemos el resultado de coincidencia de todos los elementos como se esperaba.
grep("[a-z]", letters)
grep("[a-z]", letters, value = TRUE)
grepl("[a-z]", letters)
> grep("[a-z]", letters)
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
> grep("[a-z]", letters, value = TRUE)
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v"
[23] "w" "x" "y" "z"
> grepl("[a-z]", letters)
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[18] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Utilice grepl
para hacer coincidir cualquier cadena de caracteres en el vector de caracteres R
La función grepl
puede coincidir con cualquier permutaciones lógicas de cadenas provistas con el patrón correspondiente. Tenga en cuenta que grepl
no coincide con letras mayúsculas diferentes de forma predeterminada. El siguiente fragmento de código muestra la primera función que coincide con cada cadena donde se encuentra The
. Por otro lado, la siguiente llamada a grepl
coincide con palabras que contienen The
o the
.
words <- c("The", "licenses", "for", "most", "software", "are",
"to", "share", "and", "change", "it.",
"", "By", "contrast,", "the", "GNU", "General", "Public", "License",
"free", "for", "all", "its", "users")
i <- grepl("The", words)
i
i <- grepl("The|the", words)
i
[1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[15] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[15] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Alternativamente, podemos utilizar la función if...else
para imprimir valores de cadena para cada elemento coincidente o no coincidente en el vector de caracteres, como se muestra en el siguiente ejemplo de código. Observe que la segunda llamada usa la coincidencia con cualquier cadena que contenga el carácter del rango e-h
.
words <- c("The", "Them", "for", "most", "software", "are",
"to", "share", "and", "change", "it.",
"", "By", "contrast,", "the", "GNU", "General", "Public", "License",
"free", "for", "all", "its", "users")
i <- ifelse(grepl("The|the", words), "Tr", "Fa")
i <- ifelse(grepl("[e-h]", words), "Tr", "Fa")
i
[1] "Tr" "Tr" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Tr" "Fa" "Fa"
[18] "Fa" "Fa" "Fa" "Fa" "Fa" "Fa" "Fa"
[1] "Tr" "Tr" "Tr" "Fa" "Tr" "Tr" "Fa" "Tr" "Fa" "Tr" "Fa" "Fa" "Fa" "Fa" "Tr" "Fa" "Tr"
[18] "Fa" "Tr" "Tr" "Tr" "Fa" "Fa" "Tr"
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook