Как суммировать несколько столбцов с помощью dplyr


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

Метод 1: суммирование по всем столбцам

df %>%
 mutate(sum = rowSums(., na. rm = TRUE ))

Метод 2: суммирование по всем числовым столбцам

df %>%
 mutate(sum = rowSums(across(where(is. numeric )), na. rm = TRUE ))

Метод 3: суммирование по определенным столбцам

df %>%
 mutate(sum = rowSums(across(c(col1, col2))))

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

#create data frame
df <- data.frame(game1=c(22, 25, 29, 13, 22, 30),
 game2=c(12, 10, 6, 6, 8, 11),
 game3=c(NA, 15, 15, 18, 22, 13))

#view data frame
df

 game1 game2 game3
1 22 12 NA
2 25 10 15
3 29 6 15
4 13 6 18
5 22 8 22
6 30 11 13

Пример 1: Сумма по всем столбцам

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

library(dplyr)

#sum values across all columns
df %>%
 mutate(total_points = rowSums(., na. rm = TRUE ))

 game1 game2 game3 total_points
1 22 12 NA 34
2 25 10 15 50
3 29 6 15 50
4 13 6 18 37
5 22 8 22 52
6 30 11 13 54

Пример 2: Сумма по всем числовым столбцам

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

library(dplyr) 

#sum values across all numeric columns
df %>%
 mutate(total_points = rowSums(across(where(is. numeric )), na. rm = TRUE ))

 game1 game2 game3 total_points
1 22 12 NA 34
2 25 10 15 50
3 29 6 15 50
4 13 6 18 37
5 22 8 22 52
6 30 11 13 54

Пример 3: Сумма по определенным столбцам

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

library(dplyr) 

#sum values across game1 and game2 only
df %>%
 mutate(first2_sum = rowSums(across(c(game1, game2))))

 game1 game2 game3 first2_sum
1 22 12 NA 34
2 25 10 15 35
3 29 6 15 35
4 13 6 18 19
5 22 8 22 30
6 30 11 13 41

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

В следующих руководствах объясняется, как выполнять другие распространенные задачи с помощью dplyr:

Как удалить строки с помощью dplyr
Как упорядочить строки с помощью dplyr
Как фильтровать по нескольким условиям с помощью dplyr