我想通过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
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
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)
Run Code Online (Sandbox Code Playgroud)