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


Часто вам может понадобиться найти сумму определенного набора столбцов во фрейме данных в R. К счастью, это легко сделать с помощью функции rowSums() .

В этом руководстве показано несколько примеров использования этой функции на практике.

Пример 1. Найдите сумму определенных столбцов

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

#create data frame
data <- data.frame(var1 = c(0, NA, 2, 2, 5),
 var2 = c(5, 5, 7, 8, 9),
 var3 = c(2, 7, 9, 9, 7))

#view data frame
data

 var1 var2 var3
1 0 5 2
2 NA 5 7
3 2 7 9
4 2 8 9
5 5 9 7

#find sum of first and third columns
rowSums(data[ , c(1,3)], na.rm= TRUE )

[1] 2 7 11 11 12

Способ интерпретации вывода следующий:

  • Сумма значений в первой строке для первого и третьего столбцов равна 2 .
  • Сумма значений в первой строке для первого и третьего столбцов равна 7 .
  • Сумма значений в первой строке для первого и третьего столбцов равна 11 .
  • Сумма значений в первой строке для первого и третьего столбцов равна 11 .
  • Сумма значений в первой строке для первого и третьего столбцов равна 12 .

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

#assign row sums to new variable named *row_sum*
data$row_sum <- rowSums(data[ , c(1,3)], na.rm= TRUE )

#view data frame
data

 var1 var2 var3 row_sum
1 0 5 2 2
2 NA 5 7 7
3 2 7 9 11
4 2 8 9 11
5 5 9 7 12

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

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

#find row sums across all columns
data$new <- rowSums(data, na.rm= TRUE )

#view data frame
data

 var1 var2 var3 new
1 0 5 2 7
2 NA 5 7 12
3 2 7 9 18
4 2 8 9 19
5 5 9 7 21

Мы видим, что:

  • Сумма значений в первой строке по всем трем столбцам равна 7 .
  • Сумма значений во второй строке по всем трем столбцам равна 12 .

И так далее.

Вы можете найти больше руководств по R здесь .