从Zelig sim()对象中提取第一个差异均值的函数调用是什么?

时间:2017-12-14 18:35:29

标签: r r-markdown r-zelig

我试图从与Zelig一起运行的有序概率模型中提取第一个差异的平均值。如果我只是调用sim()函数创建的对象的名称,我会得到DV所采用的每个值的平均值的打印输出。我试图在Rmarkdown中引用这些值,所以我想以编程方式调用它们,而不是仅仅从打印输出中复制它们。

因此,在下面的示例中,我希望能够为每个值1:4调用“fd”的平均值。

感谢您的帮助!

编辑:添加可重复的示例。

    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)

1 个答案:

答案 0 :(得分:2)

行。您似乎可以使用

提取该信息
colMeans(simulation_out$sim.out$x1$fd[[1]])

我发现通过追踪sumamry()所做的事情。我跑了

class(simulation_out)

看到我们有一个S4对象,然后试图用

找到泛型方法的特定函数
selectMethod("summary", "Zelig-oprobit")

显示它自己调用$summzarize。看看那个功能

 simulation_out$summarize

我们看到它在其环境中调用show()函数。我们可以用

获得该功能
get("show", environment(simulation_out$summarize))

fd信息似乎来自运行pstat(.self$sim.out$x1, "sim x1")的行print(stat(.self$sim.out$x1$fd, .self$num))。这个stat()函数调用statmat()函数来计算均值和分位数。在这里,我们只需使用colMean为我们完成工作。