如果这更容易,我需要在 ddply 或聚合的级别中使用 group by。我不确定如何执行此操作,因为我需要使用 cumsum 作为我的聚合函数。这是我的数据的样子:
level1 level2 hour product
A tea 0 7
A tea 1 2
A tea 2 9
A coffee 17 7
A coffee 18 2
A coffee 20 4
B coffee 0 2
B coffee 1 3
B coffee 2 4
B tea 21 3
B tea 22 1
预期输出:
A tea 0 7
A tea 1 9
A tea 2 18
A coffee 17 7
A coffee 18 9
A coffee 20 13
B coffee 0 2
B coffee 1 5
B coffee 2 9
B tea 21 3
B tea 22 4
我尝试使用
ddply(dd,c("level1","level2","hour"),summarise,cumsum(product))
但这并没有总结起来,我认为这是因为小时列被用于分组,并且被它分割..我认为..我不确定我是否完全理解聚合在这里是如何工作的。有什么方法可以使用聚合或 ddply 获得所需的输出?