У меня есть следующий фрейм данных:
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(), поскольку он принимает только один параметр. Я также не хочу держать счетчик для каждого ID, поскольку у меня может быть до 100 уникальных идентификаторов в день.
Любые подсказки или помощь будут оценены! Спасибо!