[英]How to sum data.frame column values?
我有一個包含多列的數據框; 一些數字和一些字符。 如何計算特定列的總和? 我用谷歌搜索了這個,我看到了很多函數( 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
)
…
我如何獲得所有權重的總和?
你可以使用sum(people$Weight)
。
sum
總結了一個向量, people$Weight
從您的數據框中檢索權重列。
注意 - 您可以通過使用?sum
, ?colSums
等獲得內置幫助(順便說一句, colSums
將為您提供每列的總和)。
要對data.frame
中的值求和,您首先需要將它們提取為向量。
有幾種方法可以做到:
# $ operatior
x <- people$Weight
x
# [1] 65 70 64
或者使用類似於矩陣的[, ]
:
x <- people[, 'Weight']
x
# [1] 65 70 64
獲得向量后,您可以使用任何向量到標量 function 來聚合結果:
sum(people[, 'Weight'])
# [1] 199
如果數據中有 NA 值,則應指定na.rm
參數:
sum(people[, 'Weight'], na.rm = TRUE)
你可以使用 tidyverse package 來解決它,它看起來像下面這樣(這對我來說更具可讀性):
library(tidyverse) people %>% summarise(sum(weight))
如果列中有'NA'值,那么
sum(as.numeric(JuneData1$Account.Balance), na.rm = TRUE)
在colsum之后訂購:
order(colSums(people),decreasing=TRUE)
如果超過20列
order(colSums(people[,c(5:25)],decreasing=TRUE) ##in case of keeping the first 4 columns remaining.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.