我试图从与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)
答案 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
为我们完成工作。