我想知道是否可以在R中简化以下代码(可能使用apply,seq等)。目的是创建一个通货膨胀指数的时间序列,其中任何给定年份的指数是上一年的价值,乘以一个因子。
#i,l and r are the initial value, length and rate, respectively
while (i<l){
res<-c(res, (res[i-1] * (r + 1)))
i<-i+1
}
答案 0 :(得分:1)
如果您正在寻找复利,您可以简单地生成一个指数向量,比如未来5年(0:5
,因为我们包括当前年份)。然后我们采用一个因子(5%或1.05
),我们希望每年增加当前值100
,并在指数中使用它作为索引向量的基础,这是指数:
# i*(1+r)^(0:l) becomes
100 * 1.05^(0:5)
# [1] 100.0000 105.0000 110.2500 115.7625 121.5506 127.6282