Interfaces utilisateur et rapports statistiques avec R et Sas
Introduction
Chapitre 1. Environnement de travail
Chapitre 2. Le langage R
Chapitre 3. Rapports statistiques
3.1. La librairie R2HTML
3.2. La librairie odfWeave
3.2.1. Introduction
3.2.2. Exemples d'utilisation
3.3. Exercices
Chapitre 4. Interfaces utilisateur
Chapitre 5. Bases de données et langage Sql
Annexe A : une applette Java
Annexe B : le logiciel Sas
Page d'accueil Table des matières Niveau supérieur Page précédente Bas de la page Page suivante Démarrage du logiciel Webographie du module Glossaire du module

3.2.2. Exemples d'utilisation

Nous allons décortiquer l'exemple cité dans la section précédente : voir fichier avant transformation (format writer ou pdf) et fichier après transformation (format writer ou pdf).

Les morceaux de code R introduits dans le fichier Writer initial sont appelés "chunks". Ils sont délimités avec des symboles spéciaux : <<...>>= en indique le début et @ la fin. Dans le premier chunk permettant de définir le tableau de données (nommé tab), l'option echo=FALSE indique que les commandes R ne seront pas recopiées dans le fichier Writer final. L'option results=hide, quant à elle, précise que les résultats de ces commandes R ne seront pas non plus recopiés dans le fichier Writer final.

# chunk d'initialisation des donnees
<<echo=FALSE,results=hide>>=
sexe = c("homme","femme","femme","homme","homme")
math = c(10,12,5,9,13)
anglais = c(5,13,7,12,5)
tab = data.frame(math,anglais,sexe)
rownames(tab) = c("Alfred", "Berthe", "Carole", "Didier", "Eric")
tab$moyenne = (tab$math + tab$anglais)/2
tab$avis = as.factor(ifelse(tab$moyenne<10,"recale","admis"))	
@	

Si on souhaite afficher les commandes R et leurs résultats, on affectera la valeur TRUE à l'option echo et la valeur verbatim à l'option results.

# chunk de statistiques brutes (affichées comme dans la console R)
<<echo=TRUE,results=verbatim>>=
summary(tab$moyenne)
summary(tab$avis)	
@	

On peut améliorer la présentation des statistiques en les mettant dans des matrices, puis en affichant ces matrices avec la fonction odfTable :

# chunk d'affichage de tables (matrices ou dataframes)
<<echo=FALSE,results=xml>>=
mat = matrix(summary(tab$avis), nrow=1)
colnames(mat) = names(summary(tab$avis))
odfTable(mat,useRowNames=F) 	
@	

Il est aussi possible, pour améliorer la présentation, de glisser des calculs au milieu d'un texte Writer :

# utilisation de S-expressions
La moyenne (de la note finale) est \Sexpr{mean(tab$moyenne,na.rm=T)}
et l'écart-type (de la note finale) \Sexpr{sd(tab$moyenne,na.rm=T)}.

Les graphiques sont réalisés avec l'option fig=TRUE.

# chunk avec un graphique
<<echo=FALSE,results=hide,fig=TRUE>>=
boxplot(tab$moyenne, main="note finale")	
@
# chunk avec plusieurs graphiques : utilisez par(mfrow=...)
<<echo=FALSE,results=hide,fig=TRUE>>=
par(mfrow=c(1,2)) 	# 2 graphiques sur 1 ligne et 2 colonnes
boxplot(tab$moyenne, main="note finale") 
pie(table(tab$avis),main="avis")
par(mfrow=c(1,1))	# pour les prochains graphiques	
@		

Pour plus d'informations sur odfWeave, je vous suggère de faire un tour sur le site d'enseignement [PBIL] et d'y chercher "odfWeave" avec la zone de texte prévue à cet effet.

Page d'accueil Table des matières Niveau supérieur Page précédente Haut de la page Page suivante Démarrage du logiciel Webographie du module Glossaire du module