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

Ajouter un commentaire

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