Interfaces utilisateur et rapports statistiques avec R et Sas
Introduction
Chapitre 1. Environnement de travail
Chapitre 2. Le langage R
Chapitre 3. Rapports statistiques
Chapitre 4. Interfaces utilisateur
4.1. La librairie tcltk
4.2. Les menus de Rcommander
4.3. La librairie Rpad
4.3.1. Introduction
4.3.2. Zones de texte
4.3.3. Zones de liste
4.4. Exercices
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

4.3.3. Zones de liste

Cette section présente une boîte de dialogue permettant de saisir un nom de variable (sous forme de zone de liste), une légende (sous forme de zone de texte) afin de faire un rapport sur cette variable d'un dataframe (voir écran). Pour construire le fichier Rpad correspondant (voir code complet) nous allons repartir du même moule que celui de la section précédente.

# squelette du fichier Rpad
<html>
<head>
	<script type="text/javascript" src="gui/Rpad.js"></script>
</head>
<body>
...
<span contenteditable="false">
	<input onclick="javascript:rpad.calculatePage()" value="OK" type="button">
	</input>
</span>
...
</body>
</html>

La partie précédent le bouton OK est ici utilisée pour initialiser le tableau de données (nommé tab) et construire le formulaire.

<pre dojoType="Rpad" rpadHideSource="true" rpadRun="init">
	# definition du tableau
	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)	
</pre>

Le formulaire est construit avec le code html suivant :

variable :
<select name="variable" size="3">
	<option>math</option>
	<option>anglais</option>
	<option>sexe</option>
</select>
<br/>
legende : 
<input type="text" name="legende"></input>
<br/>

La balise <select> définit une zone de liste nommée variable. La balise <option> permet de préciser les choix possibles dans cette zone de liste.

Le code inséré après la partie centrale (<span> ... </span>) décrit les actions effectuées lorsqu'on clique sur le bouton OK. Il affiche un résumé de la variable sélectionnée dans la zone de liste, puis réalise un graphique (boîte à moustaches ou camembert) dépendant de la nature de cette variable.

# traitement associé au bouton OK
<pre dojoType="Rpad" rpadHideSource="true">
	HTMLon()
	library(R2HTML)
	titre = paste("Etude de la variable", variable)
	HTML.title(titre, HR=2)
	HTML.title("Resume :", HR=3)
	HTML(summary(tab[[variable]]))
	HTML.title("Graphique :", HR=3)
	if (is.numeric(tab[[variable]])) {
		boxplot(tab[[variable]],main=legende)
		showgraph()
	} else {
		pie(table(tab[[variable]]),main=legende)
		showgraph()
	}
	HTMLoff()
</pre>

La fonction showgraph ne semblant plus fonctionner depuis R-2.10, il faut trouver un palliatif, par exemple employer le code utilisé avec R2HTML :

# traitement associé au bouton OK
	...
	if (is.numeric(tab[[variable]])) {
		#  solution de remplacement utilisant R2HTML 
		png("graphique.PNG")
		boxplot(tab[[variable]],main=legende)
		dev.off()
		HTMLInsertGraph("graphique.PNG")
	} else {
		#  solution de remplacement utilisant R2HTML 
		png("graphique.PNG")
		pie(table(tab[[variable]]),main=legende)
		dev.off()
		HTMLInsertGraph("graphique.PNG")
	}
	...
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