Как суммировать столбцы на основе условия в R


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

#sum values in column 3 where col1 is equal to 'A'
sum(df[ which (df$col1=='A'), 3])

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

#create data frame
df <- data.frame(conference = c('East', 'East', 'East', 'West', 'West', 'East'),
 team = c('A', 'A', 'A', 'B', 'B', 'C'),
 points = c(11, 8, 10, 6, 6, 5),
 rebounds = c(7, 7, 6, 9, 12, 8))

#view data frame
df

 conference team points rebounds
1 East A 11 7
2 East A 8 7
3 East A 10 6
4 West B 6 9
5 West B 6 12
6 East C 5 8

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

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

#sum values in column 3 (points column) where team is equal to 'A'
sum(df[ which (df$team=='A'), 3])

[1] 29

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

#sum values in column 4 (rebounds column) where points is greater than 9
sum(df[ which (df$points > 9), 4])

[1] 13

Пример 2: суммирование одного столбца на основе нескольких условий

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

#sum values in column 3 (points column) where team is 'A' and conference is 'East'
sum(df[ which (df$team=='A ' & df$conference=='East'), 3])

[1] 29

Обратите внимание, что оператор & означает «и» в R.

Пример 3: суммирование одного столбца на основе одного из нескольких условий

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

#sum values in column 3 (points column) where team is 'A' *or* 'C'
sum(df[ which (df$team == 'A ' | df$team =='C'), 3])

[1] 34

Обратите внимание, что | оператор означает «или» в R.

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

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

Как суммировать определенные столбцы в R
Как суммировать определенные строки в R
Как рассчитать сумму по группе в R

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