Comment supprimer les lignes en double dans R (avec exemples)



Vous pouvez utiliser l’une des deux méthodes suivantes pour supprimer les lignes en double d’un bloc de données dans R :

Méthode 1 : utiliser Base R

#remove duplicate rows across entire data frame
df[!duplicated(df), ]

#remove duplicate rows across specific columns of data frame
df[!duplicated(df[c('var1')]), ]

Méthode 2 : utiliser dplyr

#remove duplicate rows across entire data frame 
df %>%
  distinct(.keep_all = TRUE)

#remove duplicate rows across specific columns of data frame
df %>%
  distinct(var1, .keep_all = TRUE)

Les exemples suivants montrent comment utiliser cette syntaxe en pratique avec le bloc de données suivant :

#define data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 position=c('Guard', 'Guard', 'Forward', 'Guard', 'Center', 'Center'))

#view data frame
df

  team position
1    A    Guard
2    A    Guard
3    A  Forward
4    B    Guard
5    B   Center
6    B   Center

Exemple 1 : Supprimer les lignes en double à l’aide de Base R

Le code suivant montre comment supprimer les lignes en double d’un bloc de données à l’aide des fonctions de la base R :

#remove duplicate rows from data frame
df[!duplicated(df), ]

  team position
1    A    Guard
3    A  Forward
4    B    Guard
5    B   Center

Le code suivant montre comment supprimer les lignes en double de colonnes spécifiques d’un bloc de données en utilisant la base R :

#remove rows where there are duplicates in the 'team' column
df[!duplicated(df[c('team')]), ]

  team position
1    A    Guard
4    B    Guard

Exemple 2 : Supprimer les lignes en double à l’aide de dplyr

Le code suivant montre comment supprimer les lignes en double d’un bloc de données à l’aide de la fonction distinct() du package dplyr :

library(dplyr)

#remove duplicate rows from data frame
df %>%
  distinct(.keep_all = TRUE)

  team position
1    A    Guard
2    A  Forward
3    B    Guard
4    B   Center

Notez que l’argument .keep_all indique à R de conserver toutes les colonnes du bloc de données d’origine.

Le code suivant montre comment utiliser la fonction distinct() pour supprimer les lignes en double de colonnes spécifiques d’un bloc de données :

library(dplyr)

#remove duplicate rows from data frame
df %>%
  distinct(team, .keep_all = TRUE)

  team position
1    A    Guard
2    B    Guard

Ressources additionnelles

Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans R :

Comment supprimer des lignes dans R en fonction de la condition
Comment supprimer des lignes avec NA dans une colonne spécifique dans R

Ajouter un commentaire

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