Comment sélectionner des lignes uniques dans un bloc de données dans R
Vous pouvez utiliser les méthodes suivantes pour sélectionner des lignes uniques dans un bloc de données dans R :
Méthode 1 : sélectionner des lignes uniques dans toutes les colonnes
library(dplyr)
df %>% distinct()
Méthode 2 : sélectionner des lignes uniques basées sur une colonne
library(dplyr)
df %>% distinct(column1, .keep_all=TRUE)
Méthode 3 : sélectionner des lignes uniques basées sur plusieurs colonnes
library(dplyr)
df %>% distinct(column1, column2, .keep_all=TRUE)
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 : sélectionner des lignes uniques dans toutes les colonnes
Le code suivant montre comment sélectionner des lignes ayant des valeurs uniques dans toutes les colonnes du bloc de données :
library(dplyr)
#select rows with unique values across all columns
df %>% distinct()
team position points
1 A G 10
2 A F 8
3 A F 14
4 B G 15
5 B F 17
Nous pouvons voir qu’il y a cinq lignes uniques dans le bloc de données.
Remarque : Lorsque des lignes en double sont rencontrées, seule la première ligne unique est conservée.
Exemple 2 : sélectionner des lignes uniques basées sur une colonne
Le code suivant montre comment sélectionner des lignes uniques en fonction de la colonne d’équipe uniquement.
library(dplyr)
#select rows with unique values based on team column only
df %>% distinct(team, .keep_all=TRUE)
team position points
1 A G 10
2 B G 15
Puisqu’il n’y a que deux valeurs uniques dans la colonne équipe , seules les lignes avec la première occurrence de chaque valeur sont conservées.
Remarque : L’argument .keep_all=TRUE indique à R de conserver toutes les autres colonnes dans la sortie.
Exemple 3 : sélectionner des lignes uniques basées sur plusieurs colonnes
Le code suivant montre comment sélectionner des lignes uniques en fonction des colonnes d’équipe et de position uniquement.
library(dplyr)
#select rows with unique values based on team and position columns only
df %>% distinct(team, position, .keep_all=TRUE)
team position points
1 A G 10
2 A F 8
3 B G 15
4 B F 17
Quatre lignes sont renvoyées, car il existe quatre combinaisons uniques de valeurs dans les colonnes d’équipe et de position .
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