Как суммировать определенные строки в R (с примерами)


Мы можем использовать следующий синтаксис для суммирования определенных строк фрейма данных в R:

with (df, sum (column_1[column_2 == 'some value']))

Этот синтаксис находит сумму строк в столбце 1, в котором столбец 2 равен некоторому значению, где фрейм данных называется df .

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

#create data frame
df <- data.frame(team = c('A', 'A', 'B', 'B', 'B', 'C', 'C'),
 points = c(4, 7, 8, 8, 8, 9, 12),
 rebounds = c(3, 3, 4, 4, 6, 7, 7))

#view data frame
df

 team points rebounds
1 A 4 3
2 A 7 3
3 B 8 4
4 B 8 4
5 B 8 6
6 C 9 7
7 C 12 7

Пример 1: суммирование строк на основе значения одного столбца

В следующем коде показано, как найти сумму всех строк в столбце очков, где команда равна C:

#find sum of points where team is equal to 'C'
with (df, sum (points[team == 'C']))

[1] 21

А следующий код показывает, как найти сумму всех строк в столбце подборов, где значение в столбце очков больше 7:

#find sum of rebounds where points is greater than 7
with (df, sum (rebounds[points > 7]))

[1] 28

Пример 2. Суммирование строк на основе значений нескольких столбцов

В следующем коде показано, как найти сумму строк в столбце подборов, где значение в столбце очков меньше 8 или значение в столбце команды равно C:

with (df, sum (rebounds[points < 8 | team == 'C']))

[1] 20

А следующий код показывает, как найти сумму строк в столбце подборов, где значение в столбце очков меньше 10, а значение в столбце команды равно B:

with (df, sum (rebounds[points < 10 & team == 'B']))

[1] 14

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

Как расположить строки в R
Как удалить повторяющиеся строки в R
Как удалить строки с некоторыми или всеми NA в R