Transcript Document

Structurer ses travaux SAS
à l'aide de pages HTML
Québec
Juin 2010
Joël Rivest, Ph.D. ([email protected])
Analyste au Centre de développement du porc du Québec inc.
Québec
Juin 2010
Deux utilisations du HTML
• 1. ODS de SAS  Résultats en HTML et
présentation structurée
• 2. Automation OLE et HTML gestion
des programmes SAS
Québec
Juin 2010
Résultats en HTML
– Facilite le partage des résultats avec le
client et aide à s'y retrouver soi-même plus
facilement
Québec
Juin 2010
Résultats en HTML - Exemple
– Exemple de site
Québec
Juin 2010
Vaut-il la peine de produire un site?
• Peut être intéressant si :
– on est susceptible de revenir souvent aux résultats,
ou après une longue période de temps;
– les résultats sont nombreux;
– plusieurs personnes sont susceptible de consulter
les résultats;
– des mises à jours de résultats sont probables.
Québec
Juin 2010
Résultats en HTML - Pré-requis
– Accéder en écriture un endroit accessible
par les « clients »
• Serveur web de la Cie (gestion des accès
sécurisés)
• Serveur intranet (clients internes)
• Un ordinateur quelconque (le sien) connecté au
réseau (clients internes ou simplement pour soi)
Québec
Juin 2010
Résultats en HTML - Pré-requis
• Être capable de créer des pages web de menu
permettant d’accéder aux résultats SAS
– Préférence personnelle pour coder directement le
code HTML
– Sinon peut utiliser un logiciel wysiwyg
– Autre alternative : utiliser un wiki maison, (avec
moteur tel dokuwiki, mediawiki, etc.)
• Requiert moins de codification que le HTML
Québec
Juin 2010
Résultats en HTML - Pré-requis
• Quelques macros (pour SAS PC) facilitant
l’écriture des résultats SAS dans des pages
web
%VERSHTML(répertoire,sous-répertoire);
code…
code…
code…
%FINHTML;
Québec
Juin 2010
Macro %VERSHTML
• Paramètres de la macro %VERSHTML
– Répertoire : Obligatoire
– Sous-répertoire : Optionnel
• Crée un sous-répertoire du nom donné
• Utile pour générer série de résultats similaires pour
différentes variables
– ex : 1 sous-répertoire par variable analysée (analyse de
variance)
%MACRO VERSHTML(chemin,nom);
/*Option qui permet de fermer automatiquement la fenêtre DOS lorsque la tâche est complétée*/
OPTION NOXWAIT;
/*Change le répertoire courant selon le chemni spécifié*/
%SYSEXEC CD &CHEMIN/;
/*Si un nom est indiqué, un sous-répertoire est ajouté au chemin*/
%IF &NOM NE %THEN %DO;
%SYSEXEC MD &NOM;
%SYSEXEC CD &NOM;
%LET NOMREP=&NOM/;
%END;
%ELSE %DO;
%LET NOMREP=;
%END;
/*Efface les fichier GIF et HTML déjà présents dans le répertoire*/
/*S'ASSURER D'AVOIR LE BON RÉPERTOIRE !!! */
%SYSEXEC DEL *.GIF;
%SYSEXEC DEL *.HTML;
/*Ferme la sortie vers l'écran*/
ods listing close;
/*Ajuste les paramètres graphiques pour la sortie HTML*/
goptions device=gif notransparency hsize=16.75cm vsize=10.2cm ftitle='Arial' ftext='Arial' htext=2 htitle=3;
/*Définit les paramètres pour la sortie HTML*/
ODS HTML
PATH="&CHEMIN/&NOMREP" (url=none) /*Chemin des pages HTML*/
NEWFILE=proc
/*Crée une nouvelle page html à chaque procédure*/
FRAME='result.html' /*Nom de la première page*/
PAGE='page.html' /*Cadre de gauche ou table des matières*/
BODY='body.html' /*Nom de base pour les pages de résultats : incrémentation automatique*/
%IF &NOM NE %THEN %DO;
HEADTEXT="<title>&NOM</title>"/*Si un nom est passé, titre les pages html avec ce nom*/
%END;
;quit;
%MEND;
%MACRO FERMEHTML;
quit;
/*Ferme la sortie HTML*/
ODS HTML CLOSE;
/*Rétablit la sortie vers l'écran*/
ODS LISTING;
/*Ajuste les paramètres graphiques pour l'écran*/
goptions device=win notransparency hsize=16.75cm vsize=10.2cm ftitle='Arial'
ftext='Arial' htitle=1.5 htext=.8;
%MEND;
Québec
Juin 2010
Résultats en HTML - exemple
• Exemple fictif, création de
résultats dans un seul
répertoire
/*Création d'un set de données fictives de 4 variables*/
data donnees;
do i=1 to 100;
x=normal(464654);
y=1+.5*x+normal(464654)*2;
v=-4-7*x+normal(464654)*.5;
z=normal(654654);
output;
end;
run;
/*Met des résultats globaux dans un sous répertoire – accessibles par le
fichier “result.html”*/
%VERSHTML(CHEMIN=C:\TESTHTML,nom=global);
%let title="Statistiques descriptives";
title h=.4cm &title;;
ods proclabel &title;
proc tabulate data=donnees;
var x y v z;
table x y v z,n mean min max std p5 p95;
run;
%let title="Corrélations";
title h=.4cm &title;;
ods proclabel &title;
proc corr data=donnees nosimple;
var x y v z;
run;
%FERMEHTML;
Québec
Juin 2010
Résultats en HTML - exemple
• Exemple fictif, création de
résultats dans plusieurs
répertoires, un par variable
analysée
/*Génération de résultats pour une liste de variables données - lien entre x et une autre variable*/
%MACRO RESULTAT;
%let listevar=y v z;
%do compte=1 %to 3;
%do %while (%scan(&listevar,&compte) ne );
%let var=%scan(&listevar,&compte);
%VERSHTML(CHEMIN=C:\TESTHTML,nom=&var._vs_x);
%let title="Analyse de régression, &var f(x)";
title h=.4cm &title;;
ods proclabel &title;
proc reg data=donnees;
model &var=x;
plot &var*x;
output out=sortie r=res;
run;
%let title="Distribution des résidus de la relation de &var f(x)";
title h=.4cm &title;;
ods proclabel &title;
proc univariate data=sortie normal plot;var res;run;
%FERMEHTML;
%let compte=%eval(&compte+1);
%end;
%end;
%mend;
%RESULTAT;
Québec
Juin 2010
Gestion des programmes SAS
• Permet de créer des menus très variés
pour accéder à ses programmes SAS.
– Pour SAS PC.
– SAS enterprise ?
• Doit rouvrir SAS si on fait des
changements au menu
Québec
Juin 2010
Gestion des programmes SAS - exemple
Un clique sur un lien ouvre le fichier de
code dans SAS
Québec
Juin 2010
Gestion des programmes SAS
• Exemple de code d’une page
HTML permettant d’ouvrir
dans SAS le fichier
« autoexec.sas »
<html>
<head>
<script language="VBscript">
on error resume next
Set OleSAS = GetObject(,"SAS.Automation")
if err then
Set OleSAS = CreateObject("SAS.Application")
on error goto 0
else
on error goto 0
msgbox "like this will ever happen..."
end if
olesas.visible=true
sub runsas(cmd)
OleSAS.Top
test="wedit '"+cmd+"';"
OleSAS.command (test)
window.event.returnValue = false
end sub
</script>
</head>
<body style={color=navy;font-family:arial,sans-serif } >
<a href='' onclick='runsas("C:\Program Files\SAS\SAS 9.1\AUTOEXEC.SAS")'>Autoexec</a><br>
</body>
</html>
Merci
Québec
Juin 2010
Joël Rivest, Ph.D. ([email protected])
Analyste au Centre de développement du porc du Québec inc.