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