我很难解决这个问题。我有一个列表results4
,其中包含5个元素,所有这些元素都来自mer
包中的zelig
个对象。 mer
个对象是五个估算数据集中每一个的ls.mixed
次回归的结果。我正在尝试使用Rubin's Rules for Multiple Imputation合并结果。
我可以使用summary(results4[[1]])@coefs
提取系数和标准误差,它返回一个16x3向量(16个变量,每个变量都有一个点估计,标准误差和t统计量)。
我试图循环这五组结果并自动化结合点估计和标准误差的过程,但遗憾的是我似乎在盯着它而没有出现任何解决方案。有什么建议吗?
生成mer
对象的代码如下(变量名称已更改):
for (i in 1:5) {
results4[i] <- zelig(DV ~ V1 + V2 + V3 + V4 + V5 + V6 + V7 + V8 +
V9 + V10 + V11 + V12 + V13 + V14 + V15 + tag(1 | L2),
data = as.data.frame(w4[,,i]), model = "ls.mixed", REML = FALSE)
}
答案 0 :(得分:0)
我不会花时间编写多重插补规则(想要信用的人可以在我这里展示并建立在它上面),但我认为你应该能够做你想要的构建一个包含结果的16x3x5数组:
resultsList <- lapply(results,function(x) summary(x)@coefs)
library(abind)
resultsArr <- abind(resultsList,along=3)
然后在边距内适当地使用apply
。
也可能有基于plyr
的解决方案。
你也可以通过直接定义阵列并随时填充它来降低成本:
sumresults <- array(dim=c(16,3,5))
for (...) {
...
sumresults[,,i] <- summary(results4[[i]])@coefs
}