R : Vérifiez si la chaîne contient plusieurs sous-chaînes
Vous pouvez utiliser les méthodes suivantes dans R pour vérifier si une chaîne contient plusieurs sous-chaînes :
Méthode 1 : vérifier si la chaîne contient une sous-chaîne parmi plusieurs
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1, any)
Cette syntaxe particulière vérifie si chaque chaîne de la colonne team contient l’une des chaînes spécifiées dans le vecteur de chaînes appelé find_strings .
Méthode 2 : vérifier si la chaîne contient plusieurs sous-chaînes
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1, all)
Cette syntaxe particulière vérifie si chaque chaîne de la colonne team contient toutes les chaînes spécifiées dans le vecteur de chaînes appelé find_strings .
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le bloc de données suivant dans R :
#create data frame
df = data.frame(team=c('Good East Team', 'Good West Team', 'Great East Team',
'Great West Team', 'Bad East Team', 'Bad West Team'),
points=c(93, 99, 105, 110, 85, 88))
#view data frame
df
team points
1 Good East Team 93
2 Good West Team 99
3 Great East Team 105
4 Great West Team 110
5 Bad East Team 85
6 Bad West Team 88
Exemple 1 : Vérifier si la chaîne contient une sous-chaîne parmi plusieurs
Nous pouvons utiliser la syntaxe suivante pour vérifier si chaque chaîne de la colonne équipe contient soit la sous-chaîne « Bon » ou « Est » :
#define substrings to look for
find_strings <- c('Good', 'East')
#check if each string in team column contains either substring
df$good_or_east <- apply(sapply(find_strings , grepl, df$team), 1, any)
#view updated data frame
df
team points good_or_east
1 Good East Team 93 TRUE
2 Good West Team 99 TRUE
3 Great East Team 105 TRUE
4 Great West Team 110 FALSE
5 Bad East Team 85 TRUE
6 Bad West Team 88 FALSE
La nouvelle colonne good_or_east renvoie les valeurs suivantes :
- VRAI si l’équipe contient « Bon » ou « Est »
- FAUX si l’équipe ne contient ni « Bon » ni « Est »
Exemple 2 : Vérifier si la chaîne contient plusieurs sous-chaînes
Nous pouvons utiliser la syntaxe suivante pour vérifier si chaque chaîne de la colonne équipe contient la sous-chaîne « Bon » et « Est » :
#define substrings to look for
find_strings <- c('Good', 'East')
#check if each string in team column contains either substring
df$good_and_east <- apply(sapply(find_strings , grepl, df$team), 1, all)
#view updated data frame
df
team points good_and_east
1 Good East Team 93 TRUE
2 Good West Team 99 FALSE
3 Great East Team 105 FALSE
4 Great West Team 110 FALSE
5 Bad East Team 85 FALSE
6 Bad West Team 88 FALSE
La nouvelle colonne good_and_east renvoie les valeurs suivantes :
- VRAI si l’équipe contient « Bon » et « Est »
- FAUX si l’équipe ne contient pas « Bon » et « Est »
Notez qu’une seule valeur VRAI est renvoyée puisqu’il n’y a qu’un seul nom d’équipe contenant la sous-chaîne « Bon » et la sous-chaîne « Est ».
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
R : Comment vérifier si le caractère est dans une chaîne
R : Comment supprimer les espaces des chaînes
R : Comment extraire une chaîne entre des caractères spécifiques