我是一名生物学家和 R 新手,我正在学习如何创建一个简单的人口模型。
所以,我有一个包含 30 个年龄段的女性(1:4 是非育种者,5:30 是育种者)的人口矩阵(“pop”),它将被建模 100 年。
pop <- matrix(0,30,100)
然后我用 3 位年轻的成年女性填充这个矩阵。
pop[5, 1] <- 3
然后我想随机运行 100 年,看看这个群体随着时间的推移会如何变化。(我没有填写这些但你不需要它们,它们对于性成熟的成年人都有不同的生存概率。)
for (t in 1:100) { # Edited y to t, typing error!
pop[1,t+1] <- rbinom(1,colSums(pop[5:30, t]), b/2)
pop[5, t+1] <- rbinom(1, pop[4, t], s2)
pop[6, t+1] <- rbinom(1, pop[5, t], s2)
.....
pop[30, t+1] <- rbinom(1, pop[29, t], s2)
}
所以我的问题是:有没有什么方法可以填充这个矩阵而不必显式编写 30 行代码?因为第 5 - 30 行都将是相同的,但即使经过 5 小时(字面意思)的网络搜索和 R 手动阅读,我也找不到索引行的方法,这似乎是这里需要的。
欢迎提供任何见解,包括对这一人群进行建模的不同方式。