假设数据如下:
如果我按照两个变量
group1 group2 num
A sg 1
A sh 2
A sg 4
B at 3
B al 7
a <- cumsum(data[,"num"]) # 1 3 7 10 17
我需要按组累加某些内容。实际上,我有多个列作为分组指标。我想要按照我定义的子组来获得累加总和。
例如:
如果我只按group1
分组,则输出应为
group1 sum
A 1
A 3
A 7
B 3
B 10
如果我按照两个变量
group1,group2
进行分组,那么输出结果为:group1 group2 sum
A sg 1
A sh 2
A sg 5
B at 3
B al 7
ave(df$num,df$group1,FUN=cumsum)
来对group1
进行求和,或者使用ave(df$num,df$group1,df$group2,FUN=cumsum)
来对两个组进行求和。 - nicoladata.table
的setDT(data)[, cumsum(num), list(group1, group2)]
或者使用dplyr
的data %>% group_by(group1, group2) %>% mutate(sum=cumsum(num))
。 - akrunave
有FUN
选项! - Lovnlust