我正在拟合以下内容:
rma.glmulti.ran <- function (formula, data, random, ...) {
rma.mv(as.formula(paste(deparse(formula))), Variance, random= ~1 | Experiment, data = msa, method="REML", ...)
}
msa_res <- glmulti(MSA ~ MAPl+MAT_e+Duration.yrl+Fert+Naddl+Ndepl,
data=msa,
level=2,
exclude=c("MAPl:MAT_e","MAPl:Duration.yrl","MAPl:Fert",
"MAPl:Naddl","MAPl:Ndepl","MAT_e:Duration.yrl","MAT_e:Fert","MAT_e:depl",
"Duration.yrl:Fert","Duration.yrl:Ndepl","Duration.yrl:Naddl","Fert:Ndepl","Naddl:Ndepl"),
fitfunction=rma.glmulti.ran, crit="aicc")
这段代码的目的是只包含这两个交互:“Naddl:MAT_e”和“Naddl:Fert”。因此,我exclude=c()
用来从完整模型 ( level=2
) 中过滤掉所有其他不需要的成对交互。
这在理论上应该与以下内容相同:
MSA ~ MAPl + MAT_e + ... + Naddl:MAT_e + Naddl:Fert
但是,当我添加exclude=c()
公式时出现此错误:
Error in glmulti(MSA ~ MAPl + MAT_e + Duration.yrl + Fert + Naddl + Ndepl, :
Improper call of glmulti.
我错过了什么exclude=c()
吗?是否有更优雅的方式来指定“glmulti”中的交互项?