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