Use grepl para encontrar correspondências para qualquer string de caracteres no vetor de caracteres R
-
Use as funções
grep
ougrepl
para pesquisar correspondências de padrões em R -
Use
grepl
para corresponder a quaisquer strings de caracteres no vetor de caracteres R
Este artigo irá discutir vários métodos de uso de grepl
para encontrar correspondências para qualquer string de caracteres no vetor de caracteres R.
Use as funções grep
ou grepl
para pesquisar correspondências de padrões em R
grep
é usado para correspondência de padrões em um vetor de caracteres. Leva o argumento padrão como uma expressão regular que é correspondida pela função de acordo. grep
retorna vetores de índices para elementos correspondidos por padrão, mas também pode retornar um vetor de caracteres de elementos correspondidos se o usuário atribuir TRUE
ao parâmetro valor
. Por outro lado, grepl
retorna um vetor de valores booleanos indicando se o elemento correspondente corresponde ao padrão ou não. O exemplo a seguir demonstra as letras do alfabeto que correspondem a qualquer letra do alfabeto e obtemos o resultado de correspondência de todos os elementos conforme o esperado.
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
Use grepl
para corresponder a quaisquer strings de caracteres no vetor de caracteres R
A função grepl
pode corresponder a quaisquer permutações lógicas de strings fornecidas com o padrão correspondente. Observe que grepl
não corresponde a letras maiúsculas diferentes por padrão. O fragmento de código a seguir mostra a primeira função que corresponde a cada string onde The
é encontrado. Por outro lado, a próxima chamada para grepl
corresponde a palavras contendo The
ou 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
Como alternativa, podemos utilizar a função if...else
para imprimir valores de string para cada elemento correspondente ou não correspondente no vetor de caracteres, conforme mostrado no exemplo de código a seguir. Observe que a segunda chamada usa correspondência com qualquer string contendo o caractere do intervalo 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