Automatisation pour Génération de rapports [fermé]
Question
Nous utilisons Stata de combiner et d'analyser les données pour l'ensemble de nos agences dans un district chaque mois. Je voudrais créer en quelque sorte des rapports de l'analyse des données automatiquement ces rapports mensuels. Le rapport comprend un tableau récapitulatif des indicateurs présentés, quelques graphiques des indicateurs clés, et une table d'analyse montrant dans les groupes de données des différences statistiquement significatives. Je voudrais ces d'être en pdf et envoyées par courrier électronique automatiquement aux agences. Toutes les idées sur les logiciels que je peux utiliser pour automatiser cela?
La solution
Puisque vous utilisez Stata pour faire l'analyse, vous pouvez le laisser faire le levage de charges lourdes de l'automatisation du rapport.
L'astuce utilise un paquet Stata comme -rtfutil- pour exporter les tableaux et les graphiques que vous décrivez à un seul document. À ce moment-là, vous aurez besoin de convertir en pdf avant emailing il.
Voici quelques exemples de code pour utiliser -rtfutil- automatiser la création d'un document comprenant une table et deux graphiques (plus certains paragraphes du texte) dans un document RTF (en utilisant le jeu de données système « auto.dta » comme exemple):
******
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'
******
Cela mettra tous les éléments que vous avez posées à propos dans un document RTF (attention à tous les problèmes avec l'emballage de ce code lorsque copier / coller à partir de la page Web).
Dans votre question, vous avez également mentionné vouloir créer un PDF au cours de ce processus. Ici, vous devez aller à utiliser une solution non Stata. Si vous utilisez Mac OS X, vous pouvez utiliser l'utilitaire du terminal ou Automator pour ce faire, ou voici quelques autres solutions: http://codesnippets.joyent.com/posts/show/1601
Je ne me fenêtres donc je ne suis pas sûr de solutions avec ce système d'exploitation. Bonne chance.