Usa grepl per trovare corrispondenze per qualsiasi stringa di caratteri nel vettore di caratteri R
-
Usa le funzioni
grep
ogrepl
per cercare pattern match in R -
Usa
grepl
per abbinare qualsiasi stringa di caratteri nel vettore di caratteri R
Questo articolo discuterà diversi metodi di utilizzo di grepl
per trovare corrispondenze per qualsiasi stringa di caratteri nel vettore di caratteri R.
Usa le funzioni grep
o grepl
per cercare pattern match in R
grep
viene utilizzato per la corrispondenza del modello in un vettore di caratteri. Prende l’argomento del modello come un’espressione regolare che viene abbinata dalla funzione di conseguenza. grep
restituisce i vettori degli indici per gli elementi corrispondenti per impostazione predefinita, ma può anche restituire un vettore di caratteri degli elementi corrispondenti se l’utente assegna TRUE
al parametro value
. D’altra parte, grepl
restituisce un vettore di valori booleani che indica se l’elemento corrispondente corrisponde o meno al modello. L’esempio seguente mostra le lettere dell’alfabeto corrispondenti a qualsiasi lettera dell’alfabeto e otteniamo il risultato di corrispondenza di tutti gli elementi come previsto.
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
Usa grepl
per abbinare qualsiasi stringa di caratteri nel vettore di caratteri R
La funzione grepl
può corrispondere a qualsiasi permutazione logica di stringhe fornite con il modello corrispondente. Nota che grepl
non corrisponde a lettere maiuscole diverse per impostazione predefinita. Il seguente frammento di codice mostra la prima funzione che corrisponde a ogni stringa in cui si trova The
. D’altra parte, la chiamata successiva a grepl
corrisponde a parole che contengono 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
In alternativa, possiamo utilizzare la funzione if...else
per stampare valori di stringa per ogni elemento corrispondente o non corrispondente nel vettore di caratteri, come mostrato nel seguente esempio di codice. Si noti che la seconda chiamata utilizza la corrispondenza con qualsiasi stringa contenente il carattere dell’intervallo 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