Мне нужно использовать группу по уровням с ddply или aggregate, если это проще. Я не уверен, как это сделать, поскольку мне нужно использовать 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))
но это не подводит итог, на мой взгляд, потому, что столбец часа используется для группы и его разделение на это. Я думаю. Я не уверен, что полностью понимаю, как работает агрегат здесь. Есть ли способ получить требуемый результат с помощью aggregate или ddply?