在函数

时间:2018-04-05 14:08:47

标签: r

这是this的后续问题(参见数据和以前的命令)。

mods中的模型列表开始,我现在能够找到AIC最少的模型(对应最佳模型):

    mods <- lapply(methods, function(m) 
      update(amod.null, correlation = getFunction(m)(1, form = ~ x + y), method="ML"))
    names(mods) <- methods
    list.AIC <- lapply(mods, function(x) AIC(x))
    best.mod <- names(which.min(list.AIC))

现在,我需要对模型进行一些测试,例如Tukey之间的日期。语法非常简单,例如amod.null

library(multcomp)
res <- glht(amod.null, mcp(Date = "Tukey"))

棘手的部分是,我怎么能告诉glht使用放入best.mod 的模型(注意:这一切都发生在循环中)。我试过了

res <- glht(paste("mods$", as.factor(best.mod),sep = "") , mcp(Date = "Tukey"))

但无济于事,因为glht需要在第一个参数中找到一个模型对象。

/编辑: 可能有用:

   names(mods)
[1] "corExp"    "corGaus"   "corLin"    "corRatio"  "corSpher"

1 个答案:

答案 0 :(得分:1)

由于模型存储在列表mods中,您可以使用which.min(list.AIC)索引访问“最佳模型”:

list.AIC <- sapply(mods, AIC)
best.mod <- mods[which.min(list.AIC)]
best.mod[[1]]