Automazione per generare rapporti [chiusa]
Domanda
Stiamo usando Stata per combinare e analizzare i dati per tutte le nostre agenzie in un quartiere ogni mese. Mi piacerebbe creare in qualche modo i rapporti di analisi dei dati automaticamente per questi rapporti mensili. Il rapporto include una tabella riassuntiva degli indicatori riportati, un paio di grafica di indicatori chiave, e una tabella di analisi che mostra differenze statisticamente significative nei gruppi di dati. Mi piacerebbe che questi siano in pdf e automaticamente inviati via email fuori alle agenzie. Tutte le idee su software che possono utilizzare per automatizzare questo?
Soluzione
Dal momento che si sta utilizzando Stata a fare l'analisi, si può lasciar fare il sollevamento di carichi pesanti dell'automazione rapporto pure.
Il trucco sta usando un pacchetto Stata come -rtfutil- di esportare le tabelle ei grafici che descrivi a un singolo documento. A quel punto sarà necessario convertire i pdf che a prima di inviare email di esso.
Ecco alcuni esempi di codice per l'utilizzo -rtfutil- automatizzare la creazione di un documento contenente un tavolo e due grafiche (oltre ad alcuni paragrafi di testo) in un documento RTF (utilizzando il set di dati di sistema "auto.dta" come esempio):
******
clear
//RTF UTILITY FOR INSERTING GRAPHICS & TABLES//
local sf "/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'
******
Questo metterà tutti gli elementi hai chiesto in un documento RTF (attenzione con eventuali problemi con avvolgimento di questo codice quando copia / incolla dalla pagina web).
Nella tua domanda, è anche menzionato che vogliono creare un PDF durante questo processo. Qui avrete bisogno di andare a usare qualche soluzione non Stata. Se stai usando Mac OSX è possibile utilizzare utilità o Automator Terminal -convert- per fare questo, o qui ci sono alcune altre soluzioni: http://codesnippets.joyent.com/posts/show/1601
Io non uso le finestre, quindi non sono sicuro di soluzioni con quel sistema operativo. Buona fortuna.