gpt4 book ai didi

r - 如何按组对变量求和

转载 作者:行者123 更新时间:2023-12-03 04:00:05 25 4
gpt4 key购买 nike

我有一个包含两列的数据框。第一列包含“第一”、“第二”、“第三”等类别,第二列的数字代表我看到“类别”中特定组的次数。

例如:

Category     Frequency
First 10
First 15
First 5
Second 2
Third 14
Third 20
Second 3

我想按类别对数据进行排序并对所有频率求和:

Category     Frequency
First 30
Second 5
Third 34

我该如何在 R 中执行此操作?

最佳答案

使用聚合:

aggregate(x$Frequency, by=list(Category=x$Category), FUN=sum)
Category x
1 First 30
2 Second 5
3 Third 34
<小时/>

在上面的示例中,可以在列表中指定多个维度。可以通过 cbind 合并同一数据类型的多个聚合指标:

aggregate(cbind(x$Frequency, x$Metric2, x$Metric3) ...
<小时/>

(嵌入@thelatemail评论),aggregate也有公式接口(interface)

aggregate(Frequency ~ Category, x, sum)

或者,如果您想聚合多列,您可以使用 . 表示法(也适用于一列)

aggregate(. ~ Category, x, sum)
<小时/>

点击:

tapply(x$Frequency, x$Category, FUN=sum)
First Second Third
30 5 34
<小时/>

使用此数据:

x <- data.frame(Category=factor(c("First", "First", "First", "Second",
"Third", "Third", "Second")),
Frequency=c(10,15,5,2,14,20,3))

关于r - 如何按组对变量求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1660124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com