Comment supprimer des lignes avec des valeurs NA à l’aide de dplyr
Vous pouvez utiliser les méthodes suivantes du package dplyr pour supprimer les lignes avec des valeurs NA :
Méthode 1 : supprimer les lignes avec des valeurs NA dans n’importe quelle colonne
library(dplyr) #remove rows with NA value in any column df %>% na.omit()
Méthode 2 : supprimer les lignes avec des valeurs NA dans certaines colonnes
library(dplyr) #remove rows with NA value in 'col1' or 'col2' df %>% filter_at(vars(col1, col2), all_vars(!is.na(.)))
Méthode 3 : supprimer les lignes avec des valeurs NA dans une colonne spécifique
library(dplyr) #remove rows with NA value in 'col1' df %>% filter(!is.na(col1))
Les exemples suivants montrent comment utiliser ces méthodes en pratique avec le bloc de données suivant :
#create data frame with some missing values
df <- data.frame(team=c('A', 'A', 'B', 'B', 'C'),
points=c(99, 90, 86, 88, NA),
assists=c(33, NA, 31, 39, 34),
rebounds=c(NA, 28, 24, 24, 28))
#view data frame
df
team points assists rebounds
1 A 99 33 NA
2 A 90 NA 28
3 B 86 31 24
4 B 88 39 24
5 C NA 34 28
Méthode 1 : supprimer les lignes avec des valeurs NA dans n’importe quelle colonne
Le code suivant montre comment supprimer les lignes avec des valeurs NA dans n’importe quelle colonne du bloc de données :
library(dplyr) #remove rows with NA value in any column df %>% na.omit() team points assists rebounds 3 B 86 31 24 4 B 88 39 24
Les deux seules lignes restantes sont celles sans aucune valeur NA dans aucune colonne.
Méthode 2 : supprimer les lignes avec des valeurs NA dans certaines colonnes
Le code suivant montre comment supprimer les lignes avec des valeurs NA dans n’importe quelle colonne du bloc de données :
library(dplyr) #remove rows with NA value in 'points' or 'assists' columns df %>% filter_at(vars(points, assists), all_vars(!is.na(.))) team points assists rebounds 1 A 99 33 NA 2 B 86 31 24 3 B 88 39 24
Les seules lignes restantes sont celles sans aucune valeur NA dans les colonnes « points » ou « passes décisives ».
Méthode 3 : supprimer les lignes avec des valeurs NA dans une colonne spécifique
Le code suivant montre comment supprimer les lignes avec des valeurs NA dans une colonne spécifique du bloc de données :
library(dplyr) #remove rows with NA value in 'points' column df %>% filter(!is.na(points)) team points assists rebounds 1 A 99 33 NA 2 A 90 NA 28 3 B 86 31 24 4 B 88 39 24
Les seules lignes restantes sont celles sans aucune valeur NA dans la colonne « points ».
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes à l’aide de dplyr :
dplyr : Comment filtrer les lignes contenant certaines chaînes
dplyr : Comment remplacer les valeurs NA par zéro
dplyr : Comment utiliser un filtre « pas inclus »