有什么方法可以将 rma() 输出与 broom 包一起使用?

Any way to use rma() outputs with broom package?

我正在做元分析研究,非常喜欢 R 中的 metafor 包。 但是,为了能够利用 R 的所有优点,例如在嵌套 data.frame 中管理许多不同的模型(感谢 Hadley Wickham 和 David Robinson),我需要能够使用metafor 包 rma()-带扫帚的模型。

现在有人知道怎么做吗?我知道扫帚中不支持开箱即用的事实(目前),但非常感谢到目前为止的解决方法。

非常感谢!

这是为 tidy 创建可以处理 rma class 对象的新方法的一个非常基本的示例:

tidy.rma <- function(x) {
  return(data.frame(summary(x)$fit.stats))
}

这为函数 tidy 创建了方法 rma,我们将其定义为 return 包含 rma 对象的拟合统计信息的 data.frame

您可以改为使用您认为合适的任何数据使 tidy.rma 函数 return 成为 data.frame 类型的对象。请注意,您可以把它 return 当作您最喜欢的老妈笑话,让它与输入的 rma 模型对象完全无关。 tidy.rma 方法完全由您决定其作用。

正常使用tidy函数:

### Example from metafor package:
data(dat.bcg)
dat <- escalc(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg)
mod <-rma(yi, vi, data=dat, method="REML")
### And call tidy()
tidy(mod)

提供了一个很好的 data.frame 拟合统计数据:

             ML      REML
ll   -12.68777 -12.20237
dev   37.16141  24.40474
AIC   29.37554  28.40474
BIC   30.50544  29.37456
AICc  30.57554  29.73808