快速提问。
这是我的数据集的采样器:
name date size
999321 -5 20
999321 -5 40
999321 59 50
999321 59 50
999322 -5 32
999322 -5 45
999322 -5 20
999322 66 13
999322 66 24
999322 66 14
999322 101 24
999322 101 23
999322 101 15
因此。我希望根据它们所属的date
按照大小的总和,然后根据它们所属的name
进行分组。基本上我希望我的数据帧变成这样:
name date size
999321 -5 80 {20+60)
999321 59 100 {50+50}
999322 -5 97 {32+45+20)
999322 66 51 {13+24+14}
999322 101 62 {24+23+15}
我想创建一个循环函数,根据size
汇总date
值,直到观察数用完为止,但问题是每个主题的观察数量变化很大(如您所见,主题999321有4个观察值(每个date
值为2个),但999322有9个观察值,这发生在我的数据集的整个样本中(共有来自322个主题的4879个观察结果)。 / p>
那么,我该怎么做呢?
谢谢
答案 0 :(得分:1)
尝试使用data.table
包:
df[, list(sum(size)), by=list(name,date)]
或者您可以使用sqldf
包:
sqldf("select name, date, sum(size) as size from DF group by name, date")
name date size
1 999321 -5 60
2 999321 59 100
3 999322 -5 97
4 999322 66 51
5 999322 101 62
答案 1 :(得分:0)
或者
> aggregate(size ~ name + date, data=d, FUN="sum")
name date size
1 999321 -5 60
2 999322 -5 97
3 999321 59 100
4 999322 66 51
5 999322 101 62