Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从Zelig sim()对象中提取第一个差异的平均值的函数调用是什么?_R_R Markdown_R Zelig - Fatal编程技术网

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

R 从Zelig sim()对象中提取第一个差异的平均值的函数调用是什么?,r,r-markdown,r-zelig,R,R Markdown,R Zelig,我试图从与Zelig一起运行的有序probit模型中提取第一个差值的平均值。如果我只调用sim()函数创建的对象的名称,就会得到DV所取每个值的平均值的打印结果。我试图在Rmarkdown中引用这些值,所以我想通过编程调用它们,而不是仅仅从打印输出中复制 所以在下面的例子中,我希望能够调用“fd”的平均值,每个值为1:4 谢谢你的帮助 编辑:添加可复制的示例 library(zeligverse) library(dplyr) data(sanction) si

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

所以在下面的例子中,我希望能够调用“fd”的平均值,每个值为1:4

谢谢你的帮助

编辑:添加可复制的示例

    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)
库(zeligverse)
图书馆(dplyr)
数据(制裁)
模拟输出%setx(z.out,coop=1)%%>%setx1(z.out,coop=4)%%>%sim()
总结(模拟输出)

好的。看起来你可以用

colMeans(simulation_out$sim.out$x1$fd[[1]])
我通过追踪Suamry()的功能发现了这一点。我跑

class(simulation_out)
要查看,我们有一个S4对象,然后尝试使用

selectMethod("summary", "Zelig-oprobit")
这表明它在自身上调用
$summzarize
。看看这个函数

 simulation_out$summarize
我们看到它从其环境中调用了
show()
函数。我们可以用

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

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

太棒了!那太好了!希望Zelig的下一个版本能够有一个更直观的方法来获取这些值……我并不是说这是唯一的方法。也许有更好的方法我只是不知道。我自己不使用Zelig包,但我知道如何通过代码查看这些值是如何打印出来的。它可能不漂亮,但它很管用。