【发布时间】:2017-12-13 17:52:58
【问题描述】:
我有以下数据框:
d<-data.frame(Day=c(1, 1, 1, 1, 1, 1, 2), ID=c("A", "B", "C", "D", "A", "B", "B"), Value=c(1, 2, 3, 4, 5, 6, 7))
每天,我都想要一个唯一值的累积总和,对于重复的条目只取最近的值。我的预期输出如下:
d<-data.frame(Day=c(1, 1, 1, 1, 1, 1, 2), ID=c("A", "B", "C", "D", "A", "B", "B"), Value=c(1, 2, 3, 4, 5, 6, 7), Sum=c(1, 3, 6, 10, 14, 18, 7))
Day ID Value Sum
1 1 A 1 1
2 1 B 2 3
3 1 C 3 6
4 1 D 4 10
5 1 A 5 14
6 1 B 6 18
7 2 B 7 7
第 5 个条目将值 2、3、4、5 相加(因为 A 重复),第 6 个条目将值 3、4、5 和 6 相加(因为 A 和 B 都重复)。第 7 个条目重新开始,因为它是新的一天。
我认为我不能使用 cumsum() 因为它只接受 1 个参数。我也不想为每个 ID 保留一个计数器,因为我每天可能有多达 100 个唯一 ID。
任何提示或帮助将不胜感激!谢谢!
【问题讨论】:
标签: r