Как суммировать значения столбца data.frame?
У меня есть фрейм данных с несколькими столбцами; некоторые числовые и некоторые символы. Как вычислить сумму определенного столбца? Я гуглил для этого и вижу множество функций (sum
, cumsum
, rowsum
, rowSums
, colSums
, aggregate
, apply
) но я не могу понять все это.
Например, предположим, что у меня есть фрейм данных people
со следующими столбцами
people <- read(
text =
"Name Height Weight
Mary 65 110
John 70 200
Jane 64 115",
header = TRUE
)
…
Как я могу получить сумму всех весов?
Ответы
Ответ 1
Вы можете просто использовать sum(people$Weight)
.
sum
суммирует вектор, а people$Weight
извлекает столбец веса из вашего фрейма данных.
Примечание. Вы можете получить встроенную справку, используя ?sum
, ?colSums
и т.д. (кстати, colSums
предоставит вам сумму для каждого столбца).
Ответ 2
Если в столбце есть значения "NA", то
sum(as.numeric(JuneData1$Account.Balance), na.rm = TRUE)
Ответ 3
заказать после резюме:
order(colSums(people),decreasing=TRUE)
если больше 20+ столбцов
order(colSums(people[,c(5:25)],decreasing=TRUE) ##in case of keeping the first 4 columns remaining.
Ответ 4
Для суммирования значений в data.frame
сначала нужно извлечь их как вектор.
Есть несколько способов сделать это:
# $ operatior
x <- people$Weight
x
# [1] 65 70 64
Или используя [, ]
аналогично матрице:
x <- people[, 'Weight']
x
# [1] 65 70 64
Получив вектор, вы можете использовать любую вектор-скалярную функцию для агрегирования результата:
sum(people[, 'Weight'])
# [1] 199
Если в ваших данных есть значения NA, вам следует указать параметр na.rm
:
sum(people[, 'Weight'], na.rm = TRUE)