累积通胀计算

时间:2017-08-24 15:19:40

标签: r loops

我有一个载体,其中包含未来10年的通胀估计值:

inflation <- c(2.7/100,2.6/100,2.2/100,1.9/100,1.9/10,rep(2/100,5))

我想要N年通货膨胀的总乘数。所以第一年是i_0=1+2.7/100,然后连续几年是前一年的1倍+那一年的通货膨胀。我可以用循环来做这个,但我正在尝试用R方式做事。

所以我拥有的是:

cumulative_inflation<- rep(1,10)
cumulative_inflation[1]<-1.027
for(i in 2:10){
cumulative_inflation[i]=(1+inflation[i])*cumulative_inflation[i-1]}

我会使用Purr,但是我坚持使用R2.14,它有/非常/很少的tidyverse可用。

2 个答案:

答案 0 :(得分:2)

在基地R中完成并不难:

cumprod
正如您可能从名称中猜到的那样,

all.equal(cumprod(1+inflation), cumulative_inflation) [1] TRUE 是累积产品。

测试平等。

^M

答案 1 :(得分:1)

Reduce的一种方式:

Reduce('*', inflation + 1, accumulate = TRUE)
#[1] 1.027000 1.053702 1.076883 1.097344 1.305840 1.331956 1.358596 
#    1.385767 1.413483 1.441752