时,您在R中对人口建模的学术建议是什么?
DELTA_Z = .2Z, Z0 = 10
?输出应类似于以下
或者作为另一个例子,假设模型描述了一个群体
Nt+1 = 1.5Nt
和N5 = 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
答案 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手册的附录中有一个很好的简短教程。当我开始时,我已多次查看。