Я хочу создать кумулятивную сумму по идентификатору. Но он не должен суммировать значение, принадлежащее строке, в которой производится расчет.
Я уже пробовал с cumsum. Тем не менее, я не знаю, как добавить заявление, которое указывает, чтобы не добавлять сумму строки, в которой производится сумма. Столбец результатов, который я ищу, - это третий столбец, который называется «сумма».
Например, для идентификатора 1 первой строкой является сумма = 0, поскольку не следует добавлять эту строку. Но для идентификатора 1 и строки 2 сумма = 100, поскольку количество идентификатора 1, предшествующего строке 2, было 100 и т. Д.
id amount sum
1: 1 100 0
2: 1 20 100
3: 1 150 120
4: 2 60 0
5: 2 100 60
6: 1 30 270
7: 2 40 160
Вот что я пробовал:
df[,sum:=cumsum(amount),
by ="id"]
data: df <- data.table(id = c(1, 1, 1, 2, 2,1,2), amount = c(100, 20,
150,60,100,30,40),sum=c(0,100,120,0,60,270,160) ,stringsAsFactors =
FALSE)