Automatización para Generación de informes [cerrada]
Pregunta
Estamos utilizando Stata para combinar y analizar los datos para todas nuestras agencias en un distrito cada mes. Me gustaría crear algún modo los informes del análisis de datos de forma automática para estos informes mensuales. El informe incluye una tabla resumen de los indicadores reportados, un par de gráficos de los indicadores clave, y una mesa de análisis que mostraba diferencias estadísticamente significativas en los grupos de datos. Me gustaría que éstos sean en formato PDF y automáticamente enviado por correo electrónico a las agencias. ¿Alguna idea sobre el software que se pueden utilizar para automatizar esto?
Solución
Dado que está utilizando Stata para hacer el análisis, se puede dejar que haga el trabajo pesado de la automatización informe también.
El truco está usando un paquete Stata como -rtfutil- para exportar las tablas y gráficos que describes a un solo documento. En ese momento tendrá que convertir a pdf que antes de enviarla por correo electrónico.
A continuación, algunos ejemplos de código para el uso de -rtfutil- automatizar la creación de un documento que incluye una mesa y dos gráficos (además de algunos párrafos de texto) en un documento RTF (utilizando el sistema de base de datos "auto.dta" como ejemplo):
******
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'
******
Esto hará que todos los elementos que se le preguntó acerca en un documento RTF (tenga cuidado con cualquier problema con envoltura de este código cuando copiar / pegar desde la página web).
En su pregunta, también se ha mencionado querer crear un PDF durante este proceso. Aquí tendrá que ir a utilizar alguna solución no Stata. Si utiliza Mac OS X se puede utilizar la utilidad o automator la terminal -convert- hacer esto, o aquí hay algunas otras soluciones: http://codesnippets.joyent.com/posts/show/1601
No consumo ventanas así que no estoy seguro acerca de las soluciones con ese sistema operativo. Buena suerte.