如何对数据.frame列值求和?

oknrviil  于 2023-01-22  发布在  其他
关注(0)|答案(5)|浏览(114)

我有一个有几列的数据框;一些数字和一些字符。**如何计算特定列的总和?**我在谷歌上搜索过这个,我看到了许多函数(sumcumsumrowsumrowSumscolSumsaggregateapply),但我不能理解所有的函数。
例如,假设我有一个包含以下列的数据框people

people <- read(
  text = 
    "Name Height Weight
    Mary 65     110
    John 70     200
    Jane 64     115", 
  header = TRUE
)
…

我怎样才能得到所有权重的总和?

qgzx9mmu

qgzx9mmu1#

您可以直接使用sum(people$Weight)
sum对向量求和,people$Weight从数据框中检索weight列。
注意--您可以通过使用?sum?colSums等获得内置帮助(顺便说一下,colSums将为您提供每列的总和)。

t3psigkw

t3psigkw2#

要对data.frame中的值求和,首先需要将它们提取为向量。
有几种方法可以做到:

# $ operatior
x <- people$Weight
x
# [1] 65 70 64

或者使用类似于matrix的[, ]

x <- people[, 'Weight']
x
# [1] 65 70 64

获得向量后,可以使用任何向量到标量函数来聚合结果:

sum(people[, 'Weight'])
# [1] 199

如果数据中有NA值,则应指定na.rm参数:

sum(people[, 'Weight'], na.rm = TRUE)
3j86kqsm

3j86kqsm3#

当列中有“NA”值时,则

sum(as.numeric(JuneData1$Account.Balance), na.rm = TRUE)
xmq68pz9

xmq68pz94#

在colsum之后订购:

order(colSums(people),decreasing=TRUE)

如果超过20+列

order(colSums(people[,c(5:25)],decreasing=TRUE) ##in case of keeping the first 4 columns remaining.
fcy6dtqo

fcy6dtqo5#

你可以使用tidyverse包来解决它,它看起来像下面这样(这对我来说更具可读性):

library(tidyverse)  
people %>%
summarise(sum(weight, na.rm = TRUE))

相关问题