我正在尝试为具有木材密度的几个物种开发一种常见的生物量模型。
这是我的数据集
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
我尝试使用
为NA提供缺失值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 :(得分:0)
您的数据集中缺少值NA
。尝试设置na.exclude
或删除NA
值的记录。您可能想要估算缺失值。这个问题在这里得到了解决:
https://stats.stackexchange.com/questions/11000/how-does-r-handle-missing-values-in-lm