2011-07-08 10 views
0

私はこの問題を回避するのに苦労しています。私は、という5つの要素を含む一覧を持っています。これらの要素のすべては、パッケージのmerオブジェクトです。 merのオブジェクトは、帰属する5つのデータセットのそれぞれについて、ls.mixed回帰の結果です。私はRubin's Rules for Multiple Imputationを使って結果を組み合わせようとしています。複数の帰属merオブジェクトから係数を抽出するループ

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) 
} 
+0

方法(ドロップした後)のみ2次元で強要配列は、その多くを持って終了することができます:あなたはまた、このちょうど手前までの配列を定義し、あなたが行くようにそれを充填することによって、少ないfancilyはない可能性が

変数? 'as.data.frame(w4 [,, 1])'の構造を見てください。 –

+0

は 'results4 [[i]]'でなければなりませんか? –

+0

はい、results4 [[i]]にする必要があります。 DWin - あなたが何について話しているのか分からず、回帰には15の予測変数があります。回帰はうまくいく。 – Trey

答えて

0

Iは、複数帰属ルールをコーディングする時間を取るつもりはない(クレジットは何ができる望んでいる誰か私がここに表示され、その上に構築)、私はあなたが結果含む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 
} 
+0

ああ、はい、実際に誰かにルールをコード化させてもらうのではなく、反復の正しい方向を指しています。私はこれにショットと更新を与えるでしょう。ありがとう! – Trey

関連する問題