2017-12-14 11 views
2

私はZeligと一緒に走った順序付きプロビットモデルから最初の違いの平均値を抽出しようとしています。 sim()関数で作成したオブジェクトの名前を呼び出すだけで、DVが取る各値の平均値が表示されます。私はRmarkdownでこれらの値を参照しようとしています。そのため、プリントアウトからコピーするのではなく、プログラマチックに呼びたいと思います。Zelig sim()オブジェクトからの最初の違いの平均を抽出する関数呼び出しとは何ですか?

したがって、以下の例では、各値1:4の "fd"の平均値を呼び出すことができます。

ありがとうございました!

EDIT:再現可能な例を追加する。

library(zeligverse) 
    library(dplyr) 
    data(sanction) 

    simulation_out <- zelig(factor(cost) ~ mil+coop, model="oprobit",data=sanction) %>% setx(z.out, coop = 1) %>% setx1(z.out, coop = 4) %>% sim() 
    summary(simulation_out) 

答えて

2

OK。

colMeans(simulation_out$sim.out$x1$fd[[1]]) 

これは、sumamry()が何をしているのかを追跡することでわかりました。私たちはS4オブジェクトを持って見ることが

class(simulation_out) 

を実行し、それ自体に $summzarizeを呼び出す示し

selectMethod("summary", "Zelig-oprobit") 

で、一般的な方法のための特定の機能を見つけることを試みました。そして、その機能

simulation_out$summarize 

を見て、我々はそれの環境からshow()関数を呼び出すことがわかります。私たちは、fd情報がprint(stat(.self$sim.out$x1$fd, .self$num))を走るラインpstat(.self$sim.out$x1, "sim x1")から来ているようだ

get("show", environment(simulation_out$summarize)) 

でその機能を得ることができます。このstat()関数は平均と分位数を計算するstatmat()関数を呼び出します。ここでは私たちのために仕事をするのにcolMeanを使うだけです。

+0

恐ろしい!それは完璧に動作します!うまくいけば、Zeligの次のバージョンは、これらの値を得るより直感的な方法を持つことができます... – StanO

+0

私はこれが唯一の方法であると主張していません。私がちょうど知らないよりよい方法があるかもしれません。私はZeligパッケージを自分で使っていません。しかし、これらの値がどのように出力されているかを見るためにコードを調べる方法は分かっています。それはきれいではないかもしれませんが、それは動作します。 – MrFlick

関連する問題