Dplyr : Comment utiliser un message « pas présent » Filtre



Vous pouvez utiliser la syntaxe de base suivante dans dplyr pour filtrer les lignes d’un bloc de données qui ne figurent pas dans une liste de valeurs :

df %>%
  filter(!col_name %in% c('value1', 'value2', 'value3', ...))

Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.

Exemple 1 : Filtrer les lignes qui ne contiennent pas de valeur dans une colonne

Supposons que nous ayons le bloc de données suivant dans R :

#create data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
                 position=c('G', 'G', 'F', 'G', 'F', 'C', 'C', 'C'),
                 points=c(12, 14, 19, 24, 36, 41, 18, 29))

#view data frame
df

  team position points
1    A        G     12
2    A        G     14
3    B        F     19
4    B        G     24
5    C        F     36
6    C        C     41
7    D        C     18
8    D        C     29

La syntaxe suivante montre comment filtrer les lignes où le nom de l’équipe n’est pas égal à « A » ou « B » :

#filter for rows where team name is not 'A' or 'B'
df %>%
  filter(!team %in% c('A', 'B'))

  team position points
1    C        F     36
2    C        C     41
3    D        C     18
4    D        C     29

Exemple 2 : Filtrer les lignes qui ne contiennent pas de valeur dans plusieurs colonnes

Supposons que nous ayons le bloc de données suivant dans R :

#create data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
                 position=c('G', 'G', 'F', 'G', 'F', 'C', 'C', 'C'),
                 points=c(12, 14, 19, 24, 36, 41, 18, 29))

#view data frame
df

  team position points
1    A        G     12
2    A        G     14
3    B        F     19
4    B        G     24
5    C        F     36
6    C        C     41
7    D        C     18
8    D        C     29

La syntaxe suivante montre comment filtrer les lignes où le nom de l’équipe n’est pas égal à « A » et où la position n’est pas égale à « C » :

#filter for rows where team name is not 'A' and position is not 'C'
df %>%
  filter(!team %in% c('A') & !position %in% c('C'))

  team position points
1    B        F     19
2    B        G     24
3    C        F     36

Ressources additionnelles

Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans dplyr :

Comment supprimer des lignes à l’aide de dplyr
Comment sélectionner des colonnes par index à l’aide de dplyr
Comment filtrer les lignes contenant une certaine chaîne à l’aide de dplyr

Ajouter un commentaire

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