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

Ajouter un commentaire

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