所以我一直在使用 R-Studio 中的 popbio 包進行人口生態學練習,重點是使用 Leslie Matrix 的。我已經使用我用生命表計算的繁殖力 (mx) 和年生存值 (sx) 成功地創建了一個具有適當維度的 Leslie 矩陣。然后,我嘗試使用 popbio 包中的 pop.projection 函式將我的 Leslie 矩陣 (les.mat) 乘以起始人口向量 (N0),后跟時間間隔數(4 年)。我的理解是,您應該能夠采用 Leslie 矩陣并乘以人口向量來計算一定數量的時間間隔后的人口規模。我在這里做錯了什么,當我嘗試運行我的 pop.projection 代碼行時,我在 R 中收到以下錯誤訊息:
"> projA <- pop.projection(les.mat,N0,10) A %*% n 中的錯誤:不一致的引數"
問題可能是我的 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)
uj5u.com熱心網友回復:
該函式對第一個和第二個引數使用矩陣乘法,因此它們必須匹配。該les.mat矩陣是6×6,而N0是長度7.嘗試
projA <- pop.projection(les.mat, N0[-7], 10) # Delete last value
或者
projA <- pop.projection(les.mat, N0[-1], 10) # Delete first value
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334577.html
上一篇:foreach失敗的并行網狀呼叫
