Comment filtrer les lignes contenant une certaine chaîne à l’aide de dplyr



Souvent, vous souhaiterez peut-être filtrer les lignes d’un bloc de données dans R qui contiennent une certaine chaîne. Heureusement, cela est facile à faire en utilisant la fonction filter() du package dplyr et la fonction grepl() dans Base R.

Ce didacticiel montre plusieurs exemples d’utilisation pratique de ces fonctions à l’aide du bloc de données suivant :

#create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#view data frame
df

     player points rebounds
1   P Guard     12        5
2   S Guard     15        7
3 S Forward     19        7
4 P Forward     22       12
5    Center     32       11

Exemple 1 : filtrer les lignes contenant une certaine chaîne

Le code suivant montre comment filtrer les lignes contenant une certaine chaîne :

#load dplyr package
library(dplyr)

#filter rows that contain the string 'Guard' in the player column
df %>% filter(grepl('Guard', player))

   player points rebounds
1 P Guard     12        5
2 S Guard     15        7

Connexe : Comparaison de grep() et grepl() dans R : quelle est la différence ?

Exemple 2 : filtrer les lignes contenant au moins une chaîne

Le code suivant montre comment filtrer les lignes contenant « Guard » ou « Forward » dans la colonne du joueur :

#filter rows that contain 'Guard' or 'Forward' in the player column
df %>% filter(grepl('Guard|Forward', player))

     player points rebounds
1   P Guard     12        5
2   S Guard     15        7
3 S Forward     19        7
4 P Forward     22       12

Le code suivant montre comment filtrer les lignes contenant « P » ou « Centre » dans la colonne du lecteur :

#filter rows that contain 'P' or 'Center' in the player column
df %>% filter(grepl('P|Center', player))

     player points rebounds
1   P Guard     12        5
2 P Forward     22       12
3    Center     32       11

Exemple 3 : filtrer les lignes contenant une certaine chaîne

Le code suivant montre comment filtrer (c’est-à-dire supprimer) les lignes contenant « Guard » dans la colonne du joueur :

#filter out rows that contain 'Guard' in the player column
df %>% filter(!grepl('Guard', player))

     player points rebounds
1 S Forward     19        7
2 P Forward     22       12
3    Center     32       11

Le code suivant montre comment filtrer (c’est-à-dire supprimer) les lignes contenant « Garde » ou « Centre » dans la colonne du joueur :

#filter out rows that contain 'Guard' or 'Center' in the player column
df %>% filter(!grepl('Guard|Center', player))

     player points rebounds
1 S Forward     19        7
2 P Forward     22       12

Vous pouvez trouver plus de didacticiels R ici .

Ajouter un commentaire

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