Как суммировать определенные строки в 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

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