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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *