0

この問題に頭を悩ませています。5 つの要素を含むリストがresults4あり、そのすべてがパッケージmerのオブジェクトです。オブジェクトは、5 つの帰属データセットのそれぞれに対する回帰zeligの結果です。Rubin's Rules for Multiple Computationを使用して結果を結合しようとしています。merls.mixed

を使用して係数と標準誤差を抽出できsummary(results4[[1]])@coefsます。これは 16x3 ベクトル (16 変数、それぞれに点推定値、標準誤差、および t 統計量を含む) を返します。

5 セットの結果をループして、点推定値と標準誤差を組み合わせるプロセスを自動化しようとしていますが、残念ながら解決策が得られずにそれを見つめているようです。助言がありますか?

オブジェクトを生成するコードは次の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) 
}
4

1 に答える 1

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
}
于 2011-07-08T22:00:39.467 に答える