我想通过 id 创建一个累积和。但是,它不应该对属于正在计算的行的值求和。
我已经尝试过使用 cumsum 了。但是,我不知道如何添加一条语句,指定不添加求和行的金额。我正在寻找的结果列是第三列,名为:“sum”。
例如,对于 id 1,第一行 sum=0,因为不应该添加这一行。但是,对于 id 1 和第 2 行,sum=100,因为第 2 行之前的 id 1 的数量为 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)