簡體   English   中英

如何求和 data.frame 列值?

[英]How to sum data.frame column values?

我有一個包含多列的數據框; 一些數字和一些字符。 如何計算特定列的總和? 我用谷歌搜索了這個,我看到了很多函數( sumcumsumrowsumrowSumscolSumsaggregateapply )但我無法理解這一切。

例如,假設我有一個數據框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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM