grepl & grep (2)
Vous pouvez utiliser l’accent circonflexe ^ et le symbole dollar $ pour faire correspondre respectivement le début et la fin d’une chaîne. Cela nous rapproche d’un motif correct pour sélectionner uniquement les adresses e‑mail en « .edu » dans notre liste. Mais on peut rendre le motif encore plus robuste :
@, car une adresse e‑mail valide doit contenir un arobase..*, qui correspond à n’importe quel caractère (.) zéro ou plusieurs fois (*). Le point et l’astérisque sont des métacaractères. Vous pouvez les utiliser pour faire correspondre n’importe quelle suite de caractères entre l’arobase et la partie « .edu » de l’adresse e‑mail.\\.edu$, pour faire correspondre la partie « .edu » de l’adresse en fin de chaîne. La séquence\\échappe le point : elle indique à R que vous souhaitez utiliser.comme un caractère littéral.
Cet exercice fait partie du cours
R niveau intermédiaire
Instructions
- Utilisez
grepl()avec l’expression régulière plus avancée pour renvoyer un vecteur logique. Affichez simplement le résultat. - Faites de même avec
grep()pour créer un vecteur d’indices. Stockez le résultat dans la variablehits. - Utilisez de nouveau
emails[hits]pour extraire les éléments du vecteuremails.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# The emails vector has already been defined for you
emails <- c("[email protected]", "[email protected]", "[email protected]",
"invalid.edu", "[email protected]", "[email protected]")
# Use grepl() to match for .edu addresses more robustly
# Use grep() to match for .edu addresses more robustly, save result to hits
# Subset emails using hits