Le code complet de ce qu'il faut recopier dans le fichier Rcmdr
peut être téléchargé en cliquant ici.
La commande "Console" (voir écran) permet de faire
un rapport sur une variable (à sélectionner dans une zone de liste) du dataframe actif de RCommander.
A quelques variantes près, on retrouve le programme donné dans
la section relative aux zones de listes de tcltk.
# définition de la fonction rapportConsole
rapportConsole = function() {
# recuperation du dataframe actif
if (activeDataSet()==FALSE) {
tkmessageBox(message="pas de dataframe actif")
stop("fin");
}
tabActif = get(activeDataSet())
# reprend la section tcltk (zones de liste) pour la suite
formu = tktoplevel()
tktitle(formu) = "Creation d'un rapport"
...
tkfocus(formu)
}
La commande "odfWeave" (voir écran) permet
la saisie dans un formulaire du fichier Writer à transformer (source),
du fichier writer à créer (destination) et du logiciel de compression (standard ou 7z).
Quand l'utilisateur clique sur OK, la fonction "rapportOdf" effectue la transformation.
La commande "html" (voir écran) recopie
dans la fenêtre de scripts de RCommander quelques instructions R qui permettront
d'obtenir un rapport html sur la première variable du dataframe actif.
Ce rapport comporte un résumé et un graphique (boite à moustaches ou camembert).
L'écriture dans la fenêtre de scripts s'effectue grâce à la fonction logger.
# définition de la fonction rapportHtml
rapportHtml = function() {
logger( "library(R2HTML)" )
logger( "HTMLInitFile(outdir=getwd(), filename='exemple',
useLaTeX=FALSE, useGrid=FALSE)" )
logger( "HTML.title('Exemple de rapport', HR=1)" )
if (activeDataSet()!=FALSE) {
...
txt = paste("HTML(summary(", activeDataSet(), "[[1]]",
"))", sep="")
logger( txt )
...
}
logger( "HTMLEndFile()" )
}
Un conseil si vous souhaitez compléter ou modifier ce nouveau menu : faites-le
progressivement, RCommander n'étant pas très explicite en cas d'erreurs.
Attention : pour que les changements soient pris en compte dans RCommander, il faut
fermer puis relancer R, ce qui n'est pas très pratique.