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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *