用累积方法计算股息再投资

时间:2016-11-08 20:34:22

标签: r data.table dplyr zoo

这就是我的data.table的样子。 A:E列只是为了与excel进行比较。列NewShares是我想要的列。我不要在我的数据中包含该列。

            A           B        C         D         E          F
 dt<-fread('                 
  InitialShares     Level     Price    Amount   CashPerShare NewShares
         1573.333       0      9.5339   13973.71    0          1573.333
           0            1      10.2595    0       .06689       1584.73
           0            1      10.1575    0       .06689       1596.33
           0            1      9.6855    0       .06689       1608.58')

我正在尝试计算NewShares,假设通过以90%的价格(InitialShares)再投资股息(NewShares*CashPershare)将新股添加到Price*.9 。在excel land中,公式将是=F2+((F2*E3*B3)/(C3*0.9)),从第二行开始。第一行恰好等于InitialShares

在R land,我正在尝试(这不太对劲):

dt[,NewShares:= cumsum(InitialShares[1]*Level * CashPerShare/(Price*.9)+InitialShares[1])]

生成字段后,请注意NewShares的小数点以验证您的方法。

1 个答案:

答案 0 :(得分:2)

如果你扩展你的公式,你会发现这有效:

dt[, NewShares := cumprod(1+Level*CashPerShare/Price/0.9)*InitialShares[1]]