Вы можете использовать следующий базовый синтаксис для суммирования столбцов на основе условия в 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