【发布时间】:2016-11-08 20:34:21
【问题描述】:
这就是我的 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% 的价格(Price*.9) 再投资股息(NewShares*CashPershare) 被添加到InitialShares。在 excel 中,从第二行开始,公式将为 =F2+((F2*E3*B3)/(C3*0.9))。第一行正好等于InitialShares。
在 R 领域,我正在尝试(这不太正确):
dt[,NewShares:= cumsum(InitialShares[1]*Level * CashPerShare/(Price*.9)+InitialShares[1])]
生成字段后请注意NewShares 的小数点,以验证您的方法。
【问题讨论】:
-
@eddi 对不起。我在 C 列输入了错误的价格。我更新了帖子。
标签: r data.table dplyr zoo