我知道有一个简单的方法可以做到这一点......但是,我无法弄清楚。
我的 R 脚本中有一个数据框,如下所示:
A B C
1.2 4 8
2.3 4 9
2.3 6 0
1.2 3 3
3.4 2 1
1.2 5 1
请注意,A、B 和 C 是列名称。我正在尝试获取这样的变量:
sum1 <- [the sum of all B values such that A is 1.2]
num1 <- [the number of times A is 1.2]
有什么简单的方法可以做到这一点吗? 我基本上希望得到一个如下所示的数据框:
A num totalB
1.2 3 12
etc etc etc
其中“num”是特定 A 值出现的次数,“totalB”是给定 A 值的 B 值的总和。
最佳答案
我会使用aggregate
来获取两个聚合,然后将它们合并
到一个数据帧中:
> df
A B C
1 1.2 4 8
2 2.3 4 9
3 2.3 6 0
4 1.2 3 3
5 3.4 2 1
6 1.2 5 1
> num <- aggregate(B~A,df,length)
> names(num)[2] <- 'num'
> totalB <- aggregate(B~A,df,sum)
> names(totalB)[2] <- 'totalB'
> merge(num,totalB)
A num totalB
1 1.2 3 12
2 2.3 2 10
3 3.4 1 2
关于r - 根据另一列中的值聚合一列中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560671/