4

우리는 Stata를 사용하여 매달 한 지구에있는 모든 기관의 데이터를 결합하고 분석합니다. 나는이 월간 보고서에 대해 자동으로 데이터 분석 보고서를 작성하고 싶습니다. 보고서에는보고 된 지표의 요약 표, 핵심 지표에 대한 몇 가지 그래픽 및 데이터 표에 통계적으로 유의미한 차이를 보여주는 분석 표가 포함됩니다. 나는 이것들을 pdf에 넣고 자동으로 대행사에 이메일로 보내고 싶습니다. 내가 자동화 할 수있는 소프트웨어에 대한 아이디어가 있습니까?보고서 생성 자동화

답변

3

분석을하기 위해 Stata를 사용하고 있기 때문에 보고서 자동화 작업을 많이 수행 할 수 있습니다.

트릭은 -rtfutil-과 같은 Stata 패키지를 사용하여 설명하는 표와 그래픽을 단일 문서로 내 보냅니다. 그 시점에서 전자 메일로 보내기 전에 pdf로 변환해야합니다.

-rtfutil-을 사용하는 예제 코드는 RTF 문서에서 시스템 데이터 세트 "auto.dta"를 예로 사용하여 테이블과 두 개의 그래픽 (일부 텍스트 단락)을 포함하는 문서의 작성을 자동화합니다. :

****** 

    clear 

    //RTF UTILITY FOR INSERTING GRAPHICS & TABLES// 

    local sf "https://stackoverflow.com/users/ppri/desktop/" 

      //SETUP 
      sysuse auto, clear 
      twoway scatter mpg price, mlabel(make) || lfitci mpg price 
      graph export "`sf'myplot1.eps", replace 
      twoway scatter price mpg, mlabel(make) by(for) 
      graph export "`sf'myplot2.eps", replace 

      ** 
      tempname handle1 

      //RTFUTIL 
      rtfopen `handle1' using "`sf'mydoc1.rtf", replace 
      file write `handle1' _n _tab "{\pard\b SAMPLE DOCUMENT \par}" _tab _n 
      file write `handle1' _n "{\line}" 
      // Figure1 
      file write `handle1' "{\pard\b FIGURE 1: Plot of Price\par}" _n 
      rtflink `handle1' using "`sf'myplot1.eps" 
      // Figure2 
      file write `handle1' _n "{\page}" _n /* 
*/ "{\pard Here is the plot and a paragraph about it. Here is the plot and a paragraph about it. Here is the plot and a paragraph about it. Here is the plot and a paragraph about it.....blah blah blah blah blah \line}" _n 
      file write `handle1' _n "{\line}" 
      file write `handle1' "{\pard\b FIGURE2: Plots of Price vs. MPG\par}" _n 
      rtflink `handle1' using "`sf'myplot2.eps" 
      // Table Title 
      file write `handle1' _n "{\page}" _n 
      file write `handle1' _n "{\par\pard}" _n /* 
*/ "{\par\pard HERE IS A TABLE WITH THE CARS: \par\pard}" _n 
      file write `handle1' _n "{\par\pard}" _n 


      // Summary Table 
         rtfrstyle make mpg weight, cwidths(2000 1440 1440) local(b d e) 
         listtex make foreign mpg if mpg<15, /* 
       */ handle(`handle1') begin("`b'") delim("`d'") end("`e'") /* 
       */ head("`b'\ql{\i Make}`d'\qr{\i Foreign}`d'\qr{\i MPG }`e'") 
         file write `handle1' _n "{\line}" 
         file write `handle1' _n _tab(2) /* 
       */ "{\pard\b Sources: Census Data, etc... \par}" _n _n 
        ** 
      rtfclose `handle1' 

    ****** 

이 당신이 RTF 문서에 대한 질문 모든 요소를 ​​넣어 것입니다 (복사/웹 페이지에서 붙여 넣을 때이 코드의 포장에 문제에주의).
질문에,이 과정에서 PDF를 만들고 싶다고 언급했습니다. 여기서 비 Stata 솔루션을 사용해야합니다. Mac OSX를 사용하는 경우 Terminal -convert- 유틸리티 또는 자동화 도구를 사용하여이 작업을 수행하거나 다른 솔루션을 사용할 수 있습니다. http://codesnippets.joyent.com/posts/show/1601
Windows를 사용하지 않으므로 해당 OS의 솔루션에 대해 잘 모릅니다. 행운을 빕니다.

+0

좋아, 코드는 훌륭하지만 i. 어떻게 비 Stata 솔루션을 사용하여 PDF 생성에 대한 ""보고서 작성을 자동화하는 것에 대한 질문에 대답합니까? ii. RTFUTIL 패키지는 STATA에 의해 인식되지 않습니다 - 당신의 응답은 그것을 얻는 방법을 설명하지 않습니다 !! –

+2

첫 번째 질문은 : 내가 말했듯이, 그것은 당신이 사용하는 OS에 달려있다. 내가 언급 한 페이지를보고 Mac OSX 터미널 기반 스크립트를 사용하기로 결정했다면, 다음과 같은 라인을 삽입하여 Stata에서 이것을 자동화 할 수 있습니다 : ! mydoc1.rtf -o mydoc2.pdf do- 파일. "!" (exclam. pt.)는 Stata가 OS에 "쉘 아웃"하도록 지시합니다. 두 번째 질문에 대해서는 다른 Stata 패키지와 마찬가지로 -rtfutil-을 설치하려면 -findit rtfutil- 또는 -ssc install rtfutil-을 입력하고 화면의 지침을 따르십시오. ______ Eric A. Booth | [email protected] | [email protected] _ –