Fonction grep() de R - correspondance de motifs et recherche

R 语言实例Exemples en langage R

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

fruits <- c("pomme", "banane", "orange", "grape", "pineapple", "mango")

# 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

# Données utilisateur avec adresses e-mail
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]

R 语言实例Exemples en langage R

Autres extensions