Comment calculer une somme cumulée à l’aide de dplyr



Vous pouvez utiliser les méthodes suivantes pour calculer la somme cumulée d’une colonne dans R à l’aide du package dplyr :

Méthode 1 : calculer la somme cumulée d’une colonne

df %>% mutate(cum_sum = cumsum(var1))

Méthode 2 : calculer la somme cumulée par groupe

df %>% group_by(var1) %>% mutate(cum_sum = cumsum(var2))

Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.

Exemple 1 : calculer la somme cumulée à l’aide de dplyr

Supposons que nous ayons le bloc de données suivant dans R :

#create dataset
df <- data.frame(day=c(1, 2, 3, 4, 5, 6, 7, 8),
                 sales=c(7, 12, 10, 9, 9, 11, 18, 23))

#view dataset
df

  day sales
1   1     7
2   2    12
3   3    10
4   4     9
5   5     9
6   6    11
7   7    18
8   8    23

Nous pouvons utiliser le code suivant pour créer une nouvelle colonne contenant la somme cumulée des valeurs de la colonne « ventes » :

library(dplyr)

#calculate cumulative sum of sales
df %>% mutate(cum_sales = cumsum(sales))

  day sales cum_sales
1   1     7         7
2   2    12        19
3   3    10        29
4   4     9        38
5   5     9        47
6   6    11        58
7   7    18        76
8   8    23        99

Exemple 2 : calculer la somme cumulée par groupe à l’aide de dplyr

Supposons que nous ayons le bloc de données suivant dans R :

#create dataset
df <- data.frame(store=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 day=c(1, 2, 3, 4, 1, 2, 3, 4),
                 sales=c(7, 12, 10, 9, 9, 11, 18, 23))

#view dataset
df

  store day sales
1     A   1     7
2     A   2    12
3     A   3    10
4     A   4     9
5     B   1     9
6     B   2    11
7     B   3    18
8     B   4    23

Nous pouvons utiliser le code suivant pour créer une nouvelle colonne contenant la somme cumulée des valeurs de la colonne « ventes », regroupées par la colonne « magasin » :

library(dplyr)

#calculate cumulative sum of sales by store
df %>% group_by(store) %>% mutate(cum_sales = cumsum(sales))

# A tibble: 8 x 4
# Groups:   store [2]
  store   day sales cum_sales   
1 A         1     7         7
2 A         2    12        19
3 A         3    10        29
4 A         4     9        38
5 B         1     9         9
6 B         2    11        20
7 B         3    18        38
8 B         4    23        61

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres calculs courants dans R :

Comment calculer la somme par groupe dans R
Comment calculer la moyenne par groupe dans R

Ajouter un commentaire

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