這是我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
。我想結束最後一行的calc。
我的嘗試是:
dt[, Balance:= ifelse(Year == 2014, cumsum(Total[1]-Shares/2), cumsum(Total[1] - Shares))]
謝謝您的回答! – gibbz00