IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ SASConsultez toutes les FAQ

Nombre d'auteurs : 13, nombre de questions : 308, dernière mise à jour : 5 avril 2016  Ajouter une question

 

Cette F.A.Q., qui traite de tout type de questions portant sur l'outil SAS, a été réalisée à partir des contributions des membres des forums sas de developpez.com en vue de répondre à des questions fréquemment posées par les utilisateurs et grâce à SAS France qui a bien voulu nous donner accès à ses sources.

Si vous désirez contribuer à l'amélioration de cette F.A.Q., vous pouvez participer au billet de participation à l'enrichissement de la faq SAS , ou contacter le responsable SAS , ou contacter un des responsables de l'équipe Business Intelligence .

Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.

L'équipe SAS de developpez.com remercie les contributeurs actuels : ash_rmy , bahraoui , datametric , fafabzh6 , Fleur-Anne.Blain , green_fr , oncle_pete , raf64flo , rastoix , s_a_m et steelspirit .

L'équipe SAS de developpez.com remercie aussi claudeLeloup et jacques_jean pour leurs relectures attentives de la F.A.Q. dans le but de chasser les fautes d'orthographes.

SommaireReporting et ODSGestion du reporting (16)
précédent sommaire suivant
 

L'Output Delivery System (ODS) est disponible dans le module BASE SAS. Toutes les procédures du Système SAS l'utilisent pour produire leurs sorties.
Avec l'ODS, il est possible :

  • de sélectionner ou d'exclure certaines parties des résultats produits par les procédures SAS ;
  • d'appliquer des styles (gras, italique, choix de couleurs, de polices, etc) ;
  • de rediriger les sorties vers le type de rapport de votre choix (HTML, PDF, RTF, etc), directement vers l'imprimante, ou encore dans des tables SAS.

Mis à jour le 14 avril 2014 fafabzh6 sas

Prenons un exemple simple : des calculs de statistiques avec une procédure Univariate.

En encadrant le code de la proc Univariate par des instructions ODS HTML, le résultat sera enregistré dans un fichier html.

Code sas : Sélectionner tout
1
2
3
4
5
ods html file='c:\temp\resultat.html'; 
proc univariate data=sashelp.class; 
var age; 
run; 
ods html close;


Il est tout aussi aisé de récupérer les résultats dans une table SAS, en encadrant le code SAS avec des instructions ODS OUTPUT cette fois.

Une information est nécessaire : le nom de l'objet contenant les résultats à sauvegarder. Dans le cas de la procédure Univariate, cinq objets sont créés : moments, statistiques élémentaires, tests de position, quantiles et valeurs extrêmes. L'instruction ODS TRACE permet d'identifier leur nom (ils seront affichés dans la log).

Code sas : Sélectionner tout
1
2
3
4
5
ods trace on; 
proc univariate data=sashelp.class; 
var age; 
run; 
ods trace off;

Ainsi l'objet contenant les statistiques élémentaires est "BasicMeasures". Cette information est alors utilisable dans l'instruction ODS Output, pour créer une table SAS contenant ces indicateurs.

Code sas : Sélectionner tout
1
2
3
4
5
ods output BasicMeasures=resultat; 
proc univariate data=sashelp.class; 
var age; 
run; 
ods output close;


Ces quelques éléments constituent le minimum vital pour débuter avec l'ODS, l'aide en ligne détaillant de manière complète l'ODS. Nous vous recommandons également cette page qui recense tous les liens utiles sur l'ODS.

Mis à jour le 14 avril 2014 fafabzh6 sas

Vous devez ajouter l'option STARTPAGE au niveau de votre balise ODS.

Ci-dessous, un exemple avec la balise ODS PDF :

Code sas : Sélectionner tout
1
2
3
ODS PDF FILE='C:/temp.pdf' startpage=no; 
... 
ODS PDF CLOSE;

Mis à jour le 26 février 2016 fafabzh6

Vous devez ajouter l'option NONUMBER au début de votre programme.

Un exemple ci-dessous avec l'ODS PDF.

Code sas : Sélectionner tout
1
2
3
4
OPTION NONUMBER; 
ODS PDF FILE='C:/temp.pdf'; 
.... 
ODS PDF CLOSE;

Mis à jour le 15 novembre 2011 fafabzh6

Vous devez ajouter l'option LANDSCAPE au niveau de votre balise ODS.

Un exemple ci-dessous avec l'ODS PDF.

Code sas : Sélectionner tout
1
2
3
ODS PDF FILE='C:/temp.pdf' orientation=landscape; 
.... 
ODS PDF CLOSE;

Mis à jour le 15 novembre 2011 fafabzh6

Vous devez ajouter l'option NODATE au début de votre programme.

Un exemple ci-dessous avec l'ODS PDF.

Code sas : Sélectionner tout
1
2
3
4
OPTION NODATE; 
ODS PDF FILE='C:/temp.pdf'; 
.... 
ODS PDF CLOSE;

Mis à jour le 15 novembre 2011 fafabzh6

Par défaut, la destination ODS LISTING est toujours ouverte. Si vous la fermez (syntaxe : ODS LISTING CLOSE) et que vous exécutez une procédure, sans avoir précisé une nouvelle destination de sortie, vous recevrez alors le message ci-dessus puisque aucune destination n'est alors active.

Pour résoudre le problème, soumettez simplement l'instruction :
ODS LISTING ;Ou tout autre destination ODS possible (RTF, PDF, PRINTER, HTML, etc.).

Mis à jour le 14 avril 2014 fafabzh6 sas

Afin de connaître le nom des objets générés par les procédures, vous pouvez utiliser les commandes ODS TRACE ON/OFF comme indiquer ci-dessous.

Code sas : Sélectionner tout
1
2
3
4
5
6
ODS TRACE ON; 
Proc reg data=sashelp.class; 
model weight=height age; 
Run; 
quit; 
ODS TRACE OFF;

Le nom de chaque objet s'affiche alors dans la fenêtre LOG.

Code Fenêtre Log : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Output Added: 
------------- 
Name:       NObs 
Label:      Number of Observations 
Template:   Stat.Reg.NObs 
Path:       Reg.MODEL1.Fit.Weight.NObs 
------------- 
 
Output Added: 
------------- 
Name:       ANOVA 
Label:      Analysis of Variance 
Template:   Stat.REG.ANOVA 
Path:       Reg.MODEL1.Fit.Weight.ANOVA 
------------- 
 
Output Added: 
------------- 
Name:       FitStatistics 
Label:      Fit Statistics 
Template:   Stat.REG.FitStatistics 
Path:       Reg.MODEL1.Fit.Weight.FitStatistics 
------------- 
 
Output Added: 
------------- 
Name:       ParameterEstimates 
Label:      Parameter Estimates 
Template:   Stat.REG.ParameterEstimates 
Path:       Reg.MODEL1.Fit.Weight.ParameterEstimates 
-------------

Mis à jour le 14 avril 2014 fafabzh6 sas

Une fois le nom de l'objet concerné identifié, l'ods output permet de créer une table SAS qui contiendra les résultats affichés dans la sortie de la procédure.
Ainsi, les paramètres estimés d’une régression peuvent être sauvegardés dans une table en utilisant cette syntaxe :

Code sas : Sélectionner tout
1
2
3
4
5
6
ods output ParameterEstimates=param; 
proc reg data=sashelp.class; 
model weight=height age; 
run; 
quit; 
ods output close;

Le nom de l'objet correspondant est bien ParameterEstimates, la table qui sera créée est param.

Mis à jour le 14 avril 2014 fafabzh6 sas

Utiliser les commandes ODS SELECT ou ODS EXCLUDE.

  • ODS SELECT : permet de sélectionner les objets que l’on souhaite garder
  • ODS EXCLUDE : permet d’exclure des objets de l’output


Exemple : On souhaite afficher dans l'output d'une procédure REG, seulement l'estimation des paramètres.

Code sas : Sélectionner tout
1
2
3
4
5
ODS SELECT ParameterEstimates ; 
Proc reg data=sashelp.class; 
model weight=height age; 
Run; 
quit;

Mis à jour le 14 avril 2014 fafabzh6 sas

Il existe deux approches pour lister les styles dans SAS.

1. Via programmation, avec ces instructions :

Code sas : Sélectionner tout
1
2
3
proc template; 
 list styles; 
run;

Les styles fournis par défaut avec SAS sont présents dans la bibliothèque SASHELP (objet TMPLMST). Citons par exemple analysis, statistical, meadow, statdoc, etc.
Dès lors que des styles personnalisés sont créés (à partir de ces styles fournis en standard), ils sont par défaut stockés dans la bibliothèque SASUSER (dans l'objet TEMPLATE)

2. en cliquant, dans la fenêtre Résultats, sur Résultats (avec le bouton droit de la souris) et en choisissant Templates. Ensuite, il convient de naviguer dans la fenêtre, et de descendre par exemple dans SASHELP.TMPLMST et styles (pour voir les styles standard), ou encore SASUSER.TEMPLAT et styles (pour voir ses propres styles).

En procédant ainsi, il est alors possible de double-cliquer sur les styles, ce qui éditera le code de la procédure TEMPLATE utilisé pour le créer.

Mis à jour le 14 avril 2014 fafabzh6 sas

Par défaut, les styles personnalisés sont créés dans la bibliothèque SASUSER. Il est possible de spécifier une autre bibliothèque, en utilisant l’instruction ODS PATH. Voici un exemple de syntaxe :

ODS PATH autre.templat(update) sasuser.templat(read) sashelp.tmplmst(read);Les nouveaux styles créés seront stockés dans la bibliothèque nommée 'autre'. Ceux existant dans la bibliothèque SASUSER seront accessibles en lecture, de même que ceux fournis en standard avec SAS (soit dans la bibliothèque SASHELP).

Mis à jour le 14 avril 2014 fafabzh6 sas

L'astuce consiste à utiliser les options ODS et FOOTNOTE dans une instruction file print.

Un exemple ci-dessous.

Code sas : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* Redirection de la sortie dans un fichier texte */ 
ods listing file='c:\temp\test.txt'; 
 
/* l'option variables= permet de choisir les noms des variables de votre table SAS */ 
data _null_; 
set sashelp.class; 
file print ods=(variables=(name age)) footnote; 
put _ods_; 
title 'mon titre'; 
footnote 'mon footnote'; 
run; 
 
/* Fermeture */ 
ods listing close; 
 
/* Pour que les résultats soient à nouveau affichés dans la fenêtre Output */ 
ods listing;

Mis à jour le 14 avril 2014 sas

Avec l'instruction ODS proclabel.

Exemple :

Code sas : Sélectionner tout
1
2
3
4
5
6
7
8
ods html contents='d:\temp\contents.html' 
body='d:\temp\body.html' 
frame='d:\temp\frame.html'; 
ods proclabel "La procédure d'impression"; 
proc print data=sashelp.class; 
run; 
 
ods html close;

Autre impact de cette instruction ODS proclabel : ce texte est affiché dans la fenêtre Results.

Mis à jour le 14 avril 2014 sas

Tout à fait, mais uniquement dans les fichiers HTML. Il faut savoir qu'Enterprise Guide crée des CSS (Cascade Style Sheet) qu'on peut réutiliser dans une instruction ODS HTML.

La syntaxe ci-après indique comment les utiliser.

Code sas : Sélectionner tout
1
2
3
4
ODS HTML file='c:\temp\test.html' stylesheet=(url="c:\program Files\SAS Institute\Enterprise Guide\Styles\montest.css"); 
proc print data=sashelp.class; 
run; 
ODS HTML CLOSE;

Mis à jour le 14 avril 2014 fafabzh6 sas

Avec la procédure REPORT, dans un bloc compute, comme le montre l'exemple ci-dessous.

Code sas : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
data test; 
input valeur annee; 
/* seule la 2ème observation est marquée (flag=1), le but est d'afficher 49 en rouge et laisser les deux autres valeurs en noir */ 
if valeur < 50 then flag=1; 
cards; 
100 1960 
49 1961 
62 1962 
; 
run; 
ods html body='c:\temp\body.html' style=statdoc; 
proc report data=test nowd; 
column annee flag valeur ; 
define flag / display noprint; 
define valeur / sum; 
define annee / display; 
compute valeur; 
if flag=1 then 
call define(_col_, "style", "style=[foreground=red]"); 
endcomp; 
run; 
ods html close;

Mis à jour le 14 avril 2014 fafabzh6 sas

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.