实施Z = k * Z来模拟人口增长

时间:2015-09-09 16:54:54

标签: r excel

时,您在R中对人口建模的学术建议是什么?
DELTA_Z = .2Z, Z0 = 10

?输出应类似于以下

或者作为另一个例子,假设模型描述了一个群体 Nt+1 = 1.5NtN5 = 7.3。找到Nt的t = 0,1,2,3和4.

t 0 1 2 3 4 5 6
Zt 10 12 14.4 17.28 20.736 24.8832 29.8598

这些递归即Z = k * Z在Excel等电子表格中非常容易完成。然而,在R中,到目前为止已经完成了以下(远非有效):

#loop implementation in R
Z=10;Z;for (t in 6:0)
    {Z=.2*Z+Z; print(Z)}

PR

Z0=10; 
Z1=.2*Z0+Z0; Z2=.2*Z1+Z1; Z3=.2*Z2+Z2   
Z4=.2*Z3+Z3;Z5=.2*Z4+Z4;Z6=.2*Z5+Z5
Zn=c(Z0,Z1,Z2,Z3,Z4,Z5,Z6);

由于R试图不惜一切代价避免for循环和迭代,你的建议是什么(最好不进行迭代?)

在Excel中完成的工作如下:

t   Nt  
5   7.3 k=1.5
4   =B2/$C$2    
3   =B3/$C$2    
2   =B4/$C$2    
1   =B5/$C$2    
0   =B6/$C$2    

1 个答案:

答案 0 :(得分:3)

这更容易:

R> Z <- 10
R> Z * 1.2 ^ (0:6)
[1] 10.00000 12.00000 14.40000 17.28000 20.73600 24.88320 29.85984
R> 

我们将Z设置为10,然后将其乘以增长率。而这实际上只是将“增长”带到t - 权力。

在您的R副本附带的An Introduction to R手册的附录中有一个很好的简短教程。当我开始时,我已多次查看。