Nous utilisons Stata pour combiner et analyser les données de toutes nos agences dans un district chaque mois. J'aimerais créer des rapports d'analyse de données automatiquement pour ces rapports mensuels. Le rapport comprend un tableau récapitulatif des indicateurs rapportés, quelques graphiques des indicateurs clés et un tableau d'analyse montrant les différences statistiquement significatives dans les groupes de données. Je voudrais que ceux-ci soient en pdf et automatiquement envoyés par email aux agences. Des idées sur les logiciels que je peux utiliser pour automatiser cela?Automatisation pour générer des rapports
Répondre
Étant donné que vous utilisez Stata pour effectuer l'analyse, vous pouvez également le faire effectuer la lourde tâche de l'automatisation des rapports.
L'astuce consiste à utiliser un package Stata comme -rtfutil- pour exporter les tableaux et graphiques que vous décrivez vers un document unique. À ce stade, vous aurez besoin de convertir en PDF avant de l'envoyer par courriel. Voici un exemple de code pour utiliser -rtfutil- automatiser la création d'un document incluant une table et deux graphiques (plus quelques paragraphes de texte) dans un document RTF (en utilisant l'ensemble de données système "auto.dta" comme exemple) :
******
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'
******
cela mettra tous les éléments que vous avez posées à propos dans un document RTF (attention à des 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 fichier PDF au cours de ce processus. Ici, vous devrez utiliser une solution non-Stata. Si vous utilisez Mac OSX, vous pouvez utiliser l'utilitaire Terminal -convert- ou automator pour le faire, ou voici d'autres solutions: http://codesnippets.joyent.com/posts/show/1601
Je n'utilise pas de fenêtres, donc je ne suis pas sûr des solutions avec ce système d'exploitation. Bonne chance.
Ok, votre code fonctionne très bien mais i. Comment l'utilisation d'une solution non-Stata pour la création de PDF répondrait-elle à ma question sur «l'automatisation» de la création de rapports? ii. le paquet RTFUTIL n'est pas reconnu par STATA - votre réponse ne décrit pas comment l'obtenir !! ?? –
Pour votre première question: comme je l'ai dit, cela dépend de l'OS que vous utilisez. Si vous regardez la page que j'ai référencée et que vous avez décidé d'utiliser un script basé sur un terminal Mac OSX, vous pouvez toujours l'automatiser depuis Stata en insérant une ligne comme: ! Convert mydoc1.rtf -o mydoc2.pdf dans votre do- fichier. Le "!" (exclut pt.) dit à Stata de "sortir" sur votre système d'exploitation. Pour votre deuxième question, vous installez -rtfutil- comme tout autre paquet Stata, en tapant soit -findit rtfutil- ou -ssc install rtfutil- et suivez les instructions à l'écran. ______ Eric A. Booth | [email protected] | [email protected] _ –