ddplyまたはaggregateのレベルでgroupbyを使用する方が簡単な場合は、それを使用する必要があります。集計関数として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))
しかし、それは私が思うに要約されていません。なぜなら、時間列がgroup byに使用され、それによって分割されているからです。集計またはddplyを使用して必要な出力を取得する方法はありますか?