【发布时间】:2017-03-15 17:04:35
【问题描述】:
这就是我的 data.table 的样子:
library(data.table)
dt <- fread('
Year Total Shares Balance
2017 10 1 10
2016 12 2 9
2015 10 2 7
2014 10 3 6
2013 10 NA 3
')
**Balance** 是我想要的专栏。我试图通过取Total 的第一个值10(它也应该是Balance 字段的第一个值)然后累积减去Shares 中的值来找到累积减法。所以第二个值是10-1 =9,第三个值是9-2 = 7等等。有一个条件,如果Year是2014年,那么用2除以Shares的值。所以第四个值是7-(2/2)=6,第五个值是6-3=3。我想从最后一行结束计算。
我的尝试是:
dt[, Balance:= ifelse( Year == 2014, cumsum(Total[1]-Shares/2), cumsum(Total[1] - Shares))]
【问题讨论】:
标签: r data.table dplyr cumsum