Comment supprimer des lignes à l’aide de dplyr (avec exemples)
Vous pouvez utiliser la syntaxe de base suivante pour supprimer des lignes d’un bloc de données dans R à l’aide de dplyr :
1. Supprimez toute ligne avec NA
df %>%
na.omit()
2. Supprimez toute ligne avec NA dans une colonne spécifique
df %>% filter(!is.na(column_name))
3. Supprimez les doublons
df %>%
distinct()
4. Supprimer les lignes par position d’index
df %>% filter(!row_number() %in% c(1, 2, 4))
5. Supprimez les lignes en fonction de la condition
df %>%
filter(column1=='A' | column2 > 8)
Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec le bloc de données suivant :
library(dplyr)
#create data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'C', 'C'),
points=c(4, NA, 7, 5, 9, 9),
assists=c(1, 3, 5, NA, 2, 2))
#view data frame
df
team points assists
1 A 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2
6 C 9 2
Exemple 1 : Supprimer n’importe quelle ligne avec NA
Le code suivant montre comment supprimer toute ligne contenant des valeurs NA du bloc de données :
#remove any row with NA df %>% na.omit() team points assists 1 A 4 1 3 B 7 5 5 C 9 2 6 C 9 2
Exemple 2 : Supprimer n’importe quelle ligne avec NA dans des colonnes spécifiques
Le code suivant montre comment supprimer n’importe quelle ligne contenant des valeurs NA dans une colonne spécifique :
#remove any row with NA in 'points' column: df %>% filter(!is.na(points)) team points assists 1 A 4 1 2 B 7 5 3 B 5 NA 4 C 9 2 5 C 9 2
Exemple 3 : Supprimer les lignes en double
Le code suivant montre comment supprimer les lignes en double :
#remove duplicate rows
df %>%
distinct()
team points assists
1 A 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2
Exemple 4 : Supprimer des lignes par position d’index
Le code suivant montre comment supprimer des lignes en fonction de la position de l’index :
#remove rows 1, 2, and 4 df %>% filter(!row_number() %in% c(1, 2, 4)) team points assists 1 B 7 5 2 C 9 2 3 C 9 2
Exemple 5 : Supprimer des lignes en fonction de la condition
Le code suivant montre comment supprimer des lignes en fonction de conditions spécifiques :
#only keep rows where team is equal to 'A' or points is greater than 8 df %>% filter(column1=='A' | column2 > 8) team points assists 1 A 4 1 2 A NA 3 3 C 9 2 4 C 9 2
Ressources additionnelles
Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans dplyr :
Comment sélectionner des colonnes par index à l’aide de dplyr
Comment classer les variables par groupe à l’aide de dplyr
Comment remplacer NA par Zero dans dplyr