Fonction grep() de R - correspondance de motifs et recherche
La fonction grep() de R est utilisée pour rechercher dans un vecteur de caractères les positions ou valeurs qui correspondent à un motif spécifié.
grepl() en est la version logique, renvoyant TRUE/FALSE. Les deux prennent en charge les expressions régulières.
La syntaxe de la fonction grep() est la suivante :
grep(pattern, x, value = FALSE, ignore.case = FALSE) grepl(pattern, x, ignore.case = FALSE)
Description du paramètre :
patternLe motif à faire correspondre (prend en charge les expressions régulières).
xVecteur de caractères en entrée.
valueIndique s'il faut renvoyer la valeur correspondante (TRUE) au lieu du seul index (FALSE). La valeur par défaut est FALSE.
ignore.caseIndique s'il faut ignorer la casse.
Exemple
# grep : renvoyer les indices contenant "ap"
print("Indices contenant 'ap' :")
print(grep("ap", fruits))
# grep avec value : renvoyer les valeurs correspondantes
print("Fruits contenant 'ap' :")
print(grep("ap", fruits, value = TRUE))
# grepl : renvoyer un vecteur logique
print("S'il contient 'ap' :")
print(grepl("ap", fruits))
L'exécution du code ci-dessus produit le résultat suivant :
[1] "包含 'ap' 的索引:" [1] 1 4 5 [1] "包含 'ap' 的水果:" [1] "apple" "grape" "pineapple" [1] "是否包含 'ap':" [1] TRUE FALSE FALSE TRUE TRUE FALSE
grepl() combiné à l'indexation logique peut filtrer les lignes d'un data frame :
Exemple
df <- data.frame(
Name= c("Zhang San", "Li Si", "Wang Wu", "Zhao Liu"),
Email= c("[email protected]", "[email protected]",
"[email protected]", "[email protected]"),
stringsAsFactors = FALSE
)
# Filtrer les utilisateurs avec des e-mails d'exemple
example_users <- df[grepl("example", df$Email), ]
print("utilisateurs de courriel d'exemple :")
print(example_users)
L'exécution du code ci-dessus produit le résultat suivant :
[1] "example 邮箱的用户:" 姓名 邮箱 1 张三 [email protected] 3 王五 [email protected]Autres extensions
Exemples en langage R