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.1.1. Introduction
3.1.2. Exemples d'utilisation
3.2. La librairie odfWeave
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.1.2. Exemples d'utilisation

Nous allons décortiquer l'exemple cité dans la section précédente : voir programme R et rapport html obtenu.

Le début du programme R définit le tableau de données utilisé :

# initialisation des donnees
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"))

Pour structurer le rapport, on utilise la fonction HTML.title qui permet de définir des titres de différents niveaux : niveau 1 (HR=1) pour le titre principal, niveau 2 (HR=2) pour les sections principales, niveau 3 pour les sous-sections...

# ajout des titres
HTMLInitFile(outdir=getwd(),filename=nomfichier,useLaTeX=FALSE,useGrid=FALSE)
HTML.title("Un premier rapport", HR=1)
HTML.title("1) Statistiques brutes", HR=2)
HTML.title("1.1) Etude de la note finale", HR=3)
HTML.title("1.2) Etude de l'avis", HR=3)
HTML.title("2) Statistiques avec présentation amélioree", HR=2)
HTML.title("2.1) Utilisation de la fonction paste", HR=3)
HTML.title("2.2) Mise en forme avec des matrices", HR=3)
HTML.title("2.3) Utilisation de balises HTML", HR=3)
HTML.title("3) Graphiques", HR=2)
HTML.title("3.1) Boite à moustaches de la note finale", HR=3)
HTML.title("3.2) Graphe en camembert des avis", HR=3)
HTML.title("3.3) Regroupement de 2 graphiques", HR=3)
HTMLEndFile()

La fonction HTML, appliquée à un nombre ou à un texte, affiche celui-ci dans un nouveau paragraphe. Dans la section 1.1 où cette fonction est utilisée quatre fois, il y aura donc quatre paragraphes, ce qui n'est pas très élégant pour la mise en forme. Pour y remédier, on peut utiliser la fonction paste qui dans la section 2.2 regroupe textes et nombres dans deux variables textuelles (nommées phrase1 et phrase2) : il n'y aura donc plus que deux paragraphes.

HTML.title("1.1) Etude de la note finale", HR=3)
	HTML("moyenne (de la note finale) : ")
	HTML(mean(tab$moyenne,na.rm=T))
	HTML("ecart-type (de la note finale) : ")
	HTML(sd(tab$moyenne,na.rm=T))
HTML.title("2.1) Utilisation de la fonction paste", HR=3)
	phrase1 = paste("La moyenne vaut", mean(tab$moyenne,na.rm=T), ".")
	HTML(phrase1)
	phrase2 = paste("L'ecart-type vaut", sd(tab$moyenne,na.rm=T), ".")
	HTML(phrase2)

La fonction HTML peut être appliquée à d'autres objets que des nombres ou des textes : vecteurs, matrices, dataframes... Mais la mise en page est nettement plus performante pour certains objets, ce qui conduit ici à transformer le vecteur summary(tab$avis) en matrice à une ligne.

HTML.title("1.2) Etude de l'avis", HR=3)
	HTML(summary(tab$avis))
HTML.title("2.2) Mise en forme avec des matrices", HR=3)
	mat = matrix(summary(tab$avis), nrow=1)
	colnames(mat) = names(summary(tab$avis))
	HTML(mat)

La création de graphiques se fait en 2 temps : création de fichiers graphiques indépendents du rapport html, puis insertion dans le rapport d'un lien vers ces fichiers graphiques avec la fonction HTMLInsertGraph.

HTML.title("3.1) Boite à moustaches de la note finale", HR=3)
	# creation d'un fichier graphique nommé notefinale.PNG
	png("notefinale.PNG")
	boxplot(tab$moyenne, main="note finale")
	dev.off()
	# insertion du fichier graphique dans le rapport html
	HTMLInsertGraph("notefinale.PNG")
HTML.title("3.2) Graphe en camembert des avis", HR=3)
	# creation d'un fichier graphique nommé avis.PNG
	png("avis.PNG")
	pie(table(tab$avis),main="avis")
	dev.off()
	# insertion du fichier graphique dans le rapport html
	HTMLInsertGraph("avis.PNG")

A la fin, 4 fichiers sont ici créés par le programme R (automatiser.R) : le fichier html (rapport1.html) et trois fichiers graphiques (notefinale.PNG, avis.PNG, groupe.PNG). Si vous souhaitez mettre en ligne ce rapport sur un site web, il faudra y recopier ces 4 fichiers ainsi que la feuille de styles (R2HTML.css) introduite dans la section précédente.

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