2017-06-18 20 views
0

我正在嘗試爲幾種具有木材密度的物種開發常見的生物量模型。具有密度的生物量模型

這裏是我的數據集

Species_Name DBH_cm Wood_Density  Leaf_Biomass_kg 
Aam    10.9   0.55    4.495175666 
Aam    8.3   0.55    3.003987585 
Aam   18.3   0.55    7.0453234 
Akashmoni  26.6   0.68    8.68327883 
Akashmoni  18   0.68    5.514198965 
Akashmoni  20.6   0.68    7.140993296 
Amloki   13.7   0.64    0.418757191 
Amloki   14.6   0.64    0.348964326 
Amra   19   0.29    0 
Arjun   13.3   0.82    0 
Bajna   13   0.70    0 
Bel   19.6   0.83    0.458638794 
Sal   14.40   0.82    0.996750392 
Sal   12.20   0.82    0.644956136 
Sal   10.00   0.82    0.947928706 
Sal   14.20   0.82    0.767434214 
Sal   11.50   0.82    0.636970398 
Sal   13.20   0.82    0.445111844 
Sal   13.30   0.82    0.706039477 
Sal   10.70   0.82    0.475809213 

我嘗試用

tree[which(tree$Leaf_Biomass_kg == 0),]$Leaf_Biomass_kg <- NA 

我的模型代碼給娜遺漏值是

library(nlme) 
start <- coef(lm(log(Leaf_Biomass_kg)~log(DBH_cm)+log(Wood_Density), data=tree)) 
start[1] <- exp(start[1]) 
names(start) <- c("a","b1", "b2") 

m <- nlme(Leaf_Biomass_kg~a*DBH_cm^b1*Wood_Density^b2, 
         data=cbind(tree,g="a"), 
         fixed=a+b1+b2~1, 
         start=start, 
         groups=~g, 
         weights=varPower(form=~DBH_cm)) 

它給

錯誤finiteDiffGrad(模型,數據,收杆): NA的不允許被下標分配

誰能幫我在這方面

我在我的模型添加na.action = na.exclude但問題仍然存在

m <- nlme(Leaf_Biomass_kg~a*DBH_cm^b1*Wood_Density^b2, 
         data=cbind(tree,g="a"), 
         fixed=a+b1+b2~1, 
         start=start, 
         groups=~g, 
         weights=varPower(form=~DBH_cm) 
         na.action=na.exclude) 
+0

我在我的模型中添加了na.action = na.exclude,但它顯示了相同的錯誤。 –

回答

相關問題