Как рассчитать совокупную сумму с помощью dplyr


Вы можете использовать следующие методы для вычисления совокупной суммы столбца в R с помощью пакета dplyr :

Метод 1: вычислить совокупную сумму одного столбца

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

Метод 2: вычислить совокупную сумму по группе

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

В следующих примерах показано, как использовать каждый метод на практике.

Пример 1. Вычисление совокупной суммы с помощью dplyr

Предположим, у нас есть следующий фрейм данных в 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

Мы можем использовать следующий код для создания нового столбца, содержащего совокупную сумму значений в столбце «продажи»:

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

Пример 2. Вычисление совокупной суммы по группам с использованием dplyr

Предположим, у нас есть следующий фрейм данных в 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

Мы можем использовать следующий код для создания нового столбца, содержащего совокупную сумму значений в столбце «продажи», сгруппированных по столбцу «магазин»:

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

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные вычисления в R:

Как рассчитать сумму по группе в R
Как рассчитать среднее значение по группе в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.