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 »

Ajouter un commentaire

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