我正在尝试以设定的比例:10%预测未来五年的人口增长,而在这里还没有找到针对我的问题的解决方案。
我从一个空的data.frame开始,dim()5x2。然后,我在第一列中填入年份。从那里,我添加了2019年的人口(百万),就像这样:
popGrowth <- data.frame(matrix(NA,nrow=5,ncol=2))
popGrowth[,1] <- 2019:2023
colnames(popGrowth) <- c('years','population')
popGrowth[1,2] <- 10.4
现在是车轮掉落的地方。我尝试过:
growth_rate <- 0.1
popGrowth$population <- sapply(seq_along(popGrowth$population), function(x){
(x-1)*(1+growth_rate)
})
这给了我不错的增长率,但忽略了最初的人口。我的成长公式中肯定缺少一些东西。
任何帮助将不胜感激!
答案 0 :(得分:0)
如何使用cumprod
...
growth_rate <- 0.1
popGrowth$population <- 10.4 * cumprod(c(1, rep((1 + growth_rate), nrow(popGrowth) - 1)))
popGrowth
years population
1 2019 10.40000
2 2020 11.44000
3 2021 12.58400
4 2022 13.84240
5 2023 15.22664