Comment rechercher des éléments en double à l’aide de dplyr



Vous pouvez utiliser les méthodes suivantes pour rechercher des éléments en double dans un bloc de données à l’aide de dplyr :

Méthode 1 : afficher toutes les lignes en double

library(dplyr)

#display all duplicate rows
df %>%
  group_by_all() %>%
  filter(n()>1) %>%
  ungroup()

Méthode 2 : afficher le nombre de doublons pour toutes les lignes dupliquées

library(dplyr)

#display duplicate count for all duplicated rows
df %>%
  add_count(col1, col2, col3) %>%
  filter(n>1) %>%
  distinct()

Ce tutoriel explique comment utiliser chaque méthode en pratique avec le bloc de données suivant :

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(10, 10, 8, 14, 15, 15, 17, 17))

#view data frame
df

  team position points
1    A        G     10
2    A        G     10
3    A        F      8
4    A        F     14
5    B        G     15
6    B        G     15
7    B        F     17
8    B        F     17

Exemple 1 : afficher toutes les lignes en double

Le code suivant montre comment afficher toutes les lignes en double dans le bloc de données :

library(dplyr)

#display all duplicate rows in data frame
df %>%
  group_by_all() %>%
  filter(n()>1) %>%
  ungroup()

# A tibble: 6 x 3
  team  position points
        
1 A     G            10
2 A     G            10
3 B     G            15
4 B     G            15
5 B     F            17
6 B     F            17

Le résultat est un bloc de données contenant 6 lignes, chacune étant une ligne dupliquée.

Remarque : Si vous souhaitez uniquement savoir quelles lignes ont des valeurs en double dans des colonnes spécifiques, vous pouvez utiliser quelque chose comme group_by(team) à la place pour rechercher les lignes qui ont des valeurs en double dans la colonne d’équipe uniquement.

Exemple 2 : Afficher le nombre de doublons pour toutes les lignes dupliquées

Le code suivant montre comment afficher le nombre de doublons pour toutes les lignes dupliquées dans le bloc de données :

library(dplyr)

#display duplicate count for each row
df %>%
  add_count(team, position, points) %>%
  filter(n>1) %>%
  distinct()

  team position points n
1    A        G     10 2
2    B        G     15 2
3    B        F     17 2

La colonne n affiche le nombre total de doublons pour chaque ligne.

Par exemple:

  • La ligne avec les valeurs A, G et 10 apparaît 2 fois dans le bloc de données.
  • La ligne avec les valeurs B, G et 15 apparaît 2 fois dans le bloc de données.
  • La ligne avec les valeurs B, F et 17 apparaît 2 fois dans le bloc de données.

Remarque : Si vous souhaitez uniquement savoir quelles lignes ont des valeurs en double dans des colonnes spécifiques, incluez uniquement ces colonnes spécifiques dans la fonction add_count() .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment filtrer les valeurs uniques à l’aide de dplyr
Comment filtrer selon plusieurs conditions à l’aide de dplyr
Comment compter le nombre d’occurrences dans les colonnes de R

Ajouter un commentaire

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