2017-12-14 11 views
2

나는 Zelig와 함께 달린 순서가있는 probit 모델에서 첫 번째 차이의 평균값을 추출하려고합니다. 방금 sim() 함수로 만든 객체의 이름을 호출하면 DV가 취하는 각 값의 평균값이 출력됩니다. Rmarkdown에서 이러한 값을 참조하려고합니다. 인쇄물에서 복사하는 것보다는 프로그래밍 방식으로 호출하고 싶습니다.Zelig sim() 객체와의 첫 번째 차이의 평균을 추출하는 함수 호출은 무엇입니까?

그래서 아래 예제에서 각 값 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) 

답변

2

확인. 그것은 당신이 나는 것을 발견

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() 함수는 평균 및 quantile을 계산하는 statmat() 함수를 호출합니다. 여기서는 우리에게 단지 colMean을 사용합니다.

+0

굉장! 그건 완벽하게 작동합니다! 다행히 Zelig의 다음 버전은 이러한 값을 얻는보다 직관적 인 방법을 가질 수 있습니다. – StanO

+0

이것이 유일한 방법이라고 주장하지는 않습니다. 내가 모르는 더 나은 방법이있을 수 있습니다. 저는 Zelig 패키지를 직접 사용하지 않습니다. 그러나이 값들이 어떻게 인쇄되고 있는지보기 위해 코드를 살펴 보는 방법을 알고 있습니다. 그것은 예쁘지 않을 수도 있지만 작동합니다. – MrFlick