我有一个脚本,给定响应变量和预测变量,生成所有可能的模型组合。我已将列表中的所有数据组合保存(长度155)。我编写了一个循环,在每次迭代时,使用列表中的下一个公式:
prico.models.exp <- foreach(z = 1:length(model.formulae), .packages=c("nlme")) %dopar% {
gls(as.formula(model.formulae[z]),data=prico,subset=Freq>50,correlation=corExp(form=~x+y, nugget=T),na.action=na.omit,method="ML",control=xx)
}
当我查看每个输出的模型摘要时,模型列为as.formula(model.formulae[z])
而不是实际公式(在我的示例中,模型1将是richness ~ lai
)。由于模型系数是正确的,因此使用了正确的响应和预测器。例如:
Generalized least squares fit by maximum likelihood
Model: as.formula(model.formulae[z])
Data: prico
Subset: Freq > 50
Log-likelihood: 66.02798
Coefficients:
(Intercept) lai
3.149229862 0.007314029
Correlation Structure: Exponential spatial correlation
Formula: ~x + y
Parameter estimate(s):
range nugget
3.634669e+04 2.123560e-11
Degrees of freedom: 88 total; 86 residual
Residual standard error: 0.2020574
将模型从列表传输到模型摘要非常重要,因为其他函数(例如MuMIn中的model.avg)需要模型摘要中的公式才能工作。是否可以使用循环并将公式保留在模型摘要中?