【发布时间】:2021-12-10 00:17:19
【问题描述】:
所以我一直在使用 R-Studio 中的 popbio 包进行人口生态学练习,重点是使用 Leslie Matrix's。我已经使用我用我的生命表计算的生育力 (mx) 和年度生存值 (sx) 成功地创建了一个具有适当尺寸的 Leslie 矩阵。然后我尝试使用 popbio 包中的 pop.projection 函数将我的 Leslie 矩阵(les.mat)乘以起始人口向量(N0),然后是时间间隔数(4 年)。我的理解是,您应该能够采用 Leslie 矩阵并乘以人口向量以在设定的时间间隔后计算人口规模。我在这里做错了吗,当我尝试运行我的 pop.projection 代码行时,我在 R 中收到以下错误消息:
"> projA
问题可能出在我的 pop.projection 函数上吗?我认为这可能是 N0 参数(人口向量)的问题,当我查看我的 N0 值时,它似乎已作为“数字类型”保存在 R 中,我是否应该将其转换为自己的矩阵,还是因为它自己的向量以某种方式让我的 pop.projection 代码行运行?任何建议将不胜感激,我一直在使用的短代码将在下面链接!
Sx <- c(0.8,0.8,0.7969,0.6078,0.3226,0)
mx <- c(0,0,0.6,1.09,0.2,0)
Fx <- mx # fecundity values
S <- Sx # dropping the first value
F <- Fx
les.mat <- matrix(rep(0,36),nrow=6)
les.mat[1,] <- F
les.mat
for(i in 1:5){
les.mat[(i+1),i] <- S[i]
}
les.mat
N0 <- c(100,80,64,51,31,10,0)
projA <- pop.projection(les.mat,N0,10)
【问题讨论】:
标签: r matrix matrix-multiplication popbio