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.