Как выполнить функцию СУММЕСЛИ в R


Часто вас может интересовать только нахождение суммы строк во фрейме данных R, которые соответствуют некоторым критериям. К счастью, это легко сделать, используя следующий базовый синтаксис:

aggregate(col_to_sum ~ col_to_group_by, data=df, sum )

В следующих примерах показано, как использовать этот синтаксис для следующего фрейма данных:

#create data frame
df <- data.frame(team=c('a', 'a', 'b', 'b', 'b', 'c', 'c'),
 pts=c(5, 8, 14, 18, 5, 7, 7),
 rebs=c(8, 8, 9, 3, 8, 7, 4),
 blocks=c(1, 2, 2, 1, 0, 4, 1))

#view data frame
df

 team pts rebs blocks
1 a 5 8 1
2 a 8 8 2
3 b 14 9 2
4 b 18 3 1
5 b 5 8 0
6 c 7 7 4
7 c 7 4 1

Пример 1. Выполнение функции СУММЕСЛИ для одного столбца

Следующий код показывает, как найти сумму очков для каждой команды:

aggregate(pts ~ team, data=df, sum )

 team pts
1 a 13
2 b 37
3 c 14

Пример 2. Выполнение функции СУММЕСЛИ для нескольких столбцов

Следующий код показывает, как найти сумму очков и подборов для каждой команды:

aggregate(cbind(pts, rebs) ~ team, data=df, sum )

 team pts rebs
1 a 13 16
2 b 37 20
3 c 14 11

Пример 3. Выполнение функции СУММЕСЛИ для всех столбцов

Следующий код показывает, как найти сумму всех столбцов во фрейме данных для каждой команды:

aggregate(. ~ team, data=df, sum )

 team pts rebs blocks
1 a 13 16 3
2 b 37 20 3
3 c 14 11 5

Примечание. Точка ( . ) используется в R для представления «всех» столбцов.

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

Как выполнить функцию СЧЁТЕСЛИ в R
Как суммировать определенные столбцы в R
Как суммировать определенные строки в R