【发布时间】:2019-09-02 14:50:35
【问题描述】:
我想创建一个新列,Z,值是用以前计算的。
我将在下面解释。
这是伪数据:
#dt
C P
8.5% 100.9063
13.13% 105.9961
15.75% 112.4102
7.5% 101.2188
我想要的是:
C P Z
8.5% 100.9063 0.96792566
13.13% 105.9961 0.93507648
15.75% 112.4102 0.90311943
7.5% 101.2188 0.87417633
第一个值 0.96792566 由 P/(100*(1+C/2)) 或 100.9063/(100*(1+8.5%/2)) 计算得出。
倒数第二个由(P-(C/2)*100*SUM(Z))/((1+C/2)*100)计算,其中Z在这个公式中是添加到前一个。
我从 excel 的角度编写了这些公式。
例如,
`0.93507648 = (105.9961-(13.13%/2)*100*SUM(0.96792566))/((1+13.13%/2)*100)`
`0.90311943 = (112.4102-(15.75%/2)*100*SUM(0.96792566, 0.93507648))/((1+ 15.75%/2)*100)`
有什么建议吗?
【问题讨论】:
-
很抱歉造成混淆。这些公式来自excel的观点。这是我的难点,我可以在 excel 中计算出我想要的东西,但在 R 中我该怎么做。
-
我添加了我在 excel 中的操作截图。这样就说明问题了吗?
-
第一个不需要
sum。在 R 中,我认为应该是P/(100*(1+C/2))。但是,我不知道还有一个。 -
我搜索了滚动和
cumsum,但仍然不知道
标签: r data.table data-manipulation