从增长率到r数据帧中的系列



我在R工作,想从增长率中"恢复"一个系列:我有一个数据帧,有两列,日期和增长率。

date     growth_rate
1946-10-01 NA
1947-01-01 3.5
1947-04-01 2.1
1947-07-01 1.6

增长率的计算方法如下:

growth_rate_t=400*(ln(x_t(-ln(x_{t-1}(

我想添加一个系列为x的列,从100开始。基本上:

date     growth_rate x
1946-10-01 NA        100
1947-01-01 3.5.      100.88
1947-04-01 2.1       101.41
1947-07-01 1.6       101.82

如何在不使用循环的情况下完成此操作?

如果没有循环,我不知道该怎么做。

您可以这样做:

library(dplyr)
library(purrr)
df %>%
mutate(x = accumulate(2:nrow(df), 
~ exp((growth_rate[.y] + (400 * log(.x))) / 400), .init = 100))
date growth_rate        x
1 1946-10-01          NA 100.0000
2 1947-01-01         3.5 100.8788
3 1947-04-01         2.1 101.4098
4 1947-07-01         1.6 101.8163

最新更新