【发布时间】:2021-06-02 10:19:21
【问题描述】:
我有一个数据框:
> df
date group return
1 197501 A 1.020
2 197502 A 1.050
3 197503 A 1.031
4 197504 A 0.970
5 197501 B 0.990
6 197502 B 1.023
7 197503 B 1.040
8 197504 B 1.050
我想创建一个新列“inv”来指示我的投资增长,即我在 197501 投资了 1,000,000,然后我需要计算我的投资回报(加上上个月的回报)。此外,我有组,这意味着每次新组开始时,第一行应该从 1,000,000 * return 开始。
这意味着:
在第 1 行,我想要
1,000,000 * 1.020 = 1,020,000
然后我想要在第 2 行
1,020,000 * 1.050 = 1,071,000
等等
在第 5 行(b 组)我想要
1,000,000 * 0.990 = 990,000
在第 6 行(b 组)我想要
990,000 * 1.023 = 1,012,770
等等
最终结果应该是这样的:
date group return inv
1 197501 A 1.020 1020000.00
2 197502 A 1.050 1071000.00
3 197503 A 1.031 1104201.00
4 197504 A 0.970 1071075.97
5 197501 B 0.990 990000.00
6 197502 B 1.023 1012770.00
7 197503 B 1.040 1053281.80
8 197504 B 1.050 1105945.84
如何在 R 中做到这一点?
【问题讨论】: