【发布时间】:2019-05-27 00:21:46
【问题描述】:
我想通过 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)
【问题讨论】:
标签: r datatable cumulative-sum multiple-conditions