假设我有一个数据框,如下所示:
df<-data.frame(id=1:8,group=c(1,0,0,1,1,0,1,0),rep=c(rep("d1",4),rep("d2",4)),value=rbinom(8,1,0.6))
df
id group rep value
1 1 1 d1 0
2 2 0 d1 0
3 3 0 d1 0
4 4 1 d1 1
5 5 1 d2 1
6 6 0 d2 0
7 7 1 d2 1
8 8 0 d2 1
什么是通过
group
和rep
获得累积总和的最佳方法是:cumsum
group d1 d1+d2 d1+d2+d3
0 0 1 ...
1 1 3 ...
最佳答案
library(data.table)
# convert to data.table in place
setDT(df)
# dcast and do individual sums
dt.cast = dcast.data.table(df, group ~ rep, value.var = 'value',
fun.aggregate = sum)
dt.cast
# group d1 d2
#1: 0 0 1
#2: 1 1 2
# cumsum
dt.cast[, as.list(cumsum(unlist(.SD))), by = group]
# group d1 d2
#1: 0 0 1
#2: 1 1 3
关于r - 如何在R中按组获取累计和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23019460/