0

我是一名生物学家,研究许多鸟类的栖息地关联。因此,我列出了每个物种的全球模型,并在每个物种上都使用了挖泥机。我现在想使用 model.avg 来获取顶级模型的平均系数(delta < 2)。

但是,对于某些物种,只有一个顶级模型 - 下一个最佳模型的 delta > 2。这对我来说很好,但这意味着model.avg会引发错误。我希望它简单地返回那个顶级模型的系数(以与mean(5)返回相同的方式5)。

我可以使用 if 子句来查找这些物种并分别对待它们,但是,比如说,get.models的输出model.avg与.

是否有一种简单的解决方法可以让model.avg(或类似 model.avg 的输出)与单个顶级模型一起使用?

4

2 回答 2

0

使用coefTablecoef作为组件和平均模型的通用接口。例如:

coefTable(if(nrow(x) == 1) 
     get.models(x, 1)[[1]] 
     else model.avg(x))

x你的"model.selection"桌子在哪里。

于 2017-10-02T11:26:03.243 回答
0

我的解决方法:

tmp <- get.models(x, subset = delta < 2)
  if (length(tmp)==1){
    tmp2 <- c(tmp, tmp)
    mod.avg.results <- model.avg(tmp2)
  }  else {mod.avg.results <- model.avg(x, subset = delta < 2)}

(这是在 an 中llply,所以 x 是每个物种的model.selection对象)

于 2017-09-29T12:50:24.047 回答