Comment combiner des lignes avec les mêmes valeurs de colonne dans R
Vous pouvez utiliser la syntaxe de base suivante pour combiner des lignes avec les mêmes valeurs de colonne dans un bloc de données dans R :
library(dplyr)
df %>%
group_by(group_var1, group_var2) %>%
summarise(across(c(values_var1, values_var2), sum))
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : combiner des lignes avec les mêmes valeurs de colonne dans R
Supposons que nous disposions du bloc de données suivant contenant des informations sur les ventes et les retours effectués par divers employés d’une entreprise :
#create data frame df <- data.frame(id=c(101, 101, 102, 103, 103, 103), employee=c('Dan', 'Dan', 'Rick', 'Ken', 'Ken', 'Ken'), sales=c(4, 1, 3, 2, 5, 3), returns=c(1, 2, 2, 1, 3, 2)) #view data frame df id employee sales returns 1 101 Dan 4 1 2 101 Dan 1 2 3 102 Rick 3 2 4 103 Ken 2 1 5 103 Ken 5 3 6 103 Ken 3 2
Nous pouvons utiliser la syntaxe suivante pour combiner les lignes qui ont la même valeur dans les colonnes id et Employee , puis agréger les colonnes restantes :
library(dplyr) #combine rows with same value for id and employee and aggregate remaining columns df %>% group_by(id, employee) %>% summarise(across(c(sales, returns), sum)) # A tibble: 3 x 4 # Groups: id [3] id employee sales returns 1 101 Dan 5 3 2 102 Rick 3 2 3 103 Ken 10 6
Le résultat est un bloc de données qui combine toutes les lignes du bloc de données d’origine qui avaient la même valeur dans les colonnes identifiant et employé , puis calcule la somme des valeurs dans les colonnes ventes et retours .
Remarque : Nous avons choisi d’agréger les colonnes de ventes et de retours à l’aide de la fonction somme , mais vous pouvez agréger par une autre mesure telle que la moyenne si vous le souhaitez.
Connexe : Comment utiliser la fonction across() dans dplyr
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment combiner des listes dans R
Comment combiner deux vecteurs dans R
Comment combiner deux blocs de données dans R avec des colonnes différentes