Lorsque vous rédigez un rapport de statistique avec un traitement de texte (Word, Writer...),
vous le faites généralement de façon artisanale avec des copier-coller de graphiques
ou de statistiques obtenus sous R.
Si ce rapport doit être répété dans le temps (avec des données actualisées), il vaut mieux
recourir à une approche plus systématique.
C'est ce que permet la librairie odfWeave avec le traitement de texte Writer
de la suite OpenOffice ([OO]), que vous
pouvez télécharger gratuitement s'il n'est pas installé sur votre machine.
Cette approche consiste à insérer directement dans le document Writer
des instructions R générant des statistiques ou des graphiques
(voir exemple au format writer ou pdf).
Ensuite, vous n'avez plus qu'à exécuter une commande (odfWeave) permettant de remplacer
chaque morceau de code R par son résultat
(voir résultat au format writer ou pdf) :
# lisez la suite avant d'exécuter ce code sous Windows !
library(odfWeave)
setwd("C:/Documents and Settings/raffinat") # dossier à adapter
odfWeave("exemple1.odt", "resultat1.odt") # à adapter
Ce code ne fonctionne que si votre installation a
l'utilitaire adéquat pour compresser ou décompresser des documents (zip et unzip).
Avec le système d'exploitation Linux, c'est en principe le cas contrairement
à Windows (mais vérifiez quand même !).
J. Barnier ([ALEA]) propose comme remède
de placer deux fichiers nommés zip.exe et unzip.exe
(télécharger)
dans votre répertoire système, c’est à dire en général soit c:\windows, soit c:\winnt.
Une autre solution est d'installer l'utilitaire de compression 7-zip
([7z]), puis de redéfinir la fonction odfWeave :
# redéfinition de la fonction odfWeave (compression avec 7z)
odfWeave = function (file, dest) {
require(odfWeave)
zip = '"c:/Program Files/7-Zip/7z.exe"'
# vérifier l'installation du logiciel de compression 7z
cmd = c( paste(zip,"a -tzip $$file$$ .") , paste(zip,"e -tzip $$file$$") )
odfWeave:::odfWeave(file, dest, control=odfWeaveControl(zipCmd=cmd))
}
# utilisation inchangee
setwd("C:/Documents and Settings/raffinat") # dossier à adapter
odfWeave("exemple1.odt", "resultat1.odt") # à adapter
Avec cette deuxième solution, un message apparemment inquiétant apparaît lorsque vous
cherchez à ouvrir le fichier writer final
(fichier corrompu),
mais heureusement tout se passe bien si vous demandez la réparation de ce fichier.
Ce message étant souvent caché par d'autres fenêtres, j'ai plusieurs fois
attendu en vain en me demandant pourquoi le fichier ne s'ouvrait pas.
Espérons que ce bug sera résolu...