Output Delivery System sous SAS
L'ODS ou comment filtrer ou rediriger ses rapports SAS
L'ODS pour Output Delivery System a initialement été pensé pour permettre à l'analyste de diriger ses rapports SAS vers diverses sorties (PDF, Excel, HTML ...). L'emploi qui en a été fait s'est généralisé au point de constituer désormais une collection d'instructions permettant de gérer les rapports. Ainsi l'ODS peut nous permettre de contrôler le format de sortie, la visibilité des blocs ou encore de gérer les graphiques. Nous nous attarderons dans cet articles sur les 2 premiers points.
La sélection ODS
Nous avons traité dans un article précèdent de la proc univariate. C'est un bon exemple d'instruction
SAS générant par défaut un rapport relativement chargé. L'ODS vous nous permettre d'élaguer un peu la sortie
afin de n'éditer que les tableaux qui nous intéressent.
Disons par exemple, que nous voulons n'éditer que les quantiles dans le rapport issu de la proc univariate.
Voici tout d’abord, ci-dessous, l'instruction proc univariate telle que nous l'avions présentée :
proc univariate data=work.skate;
run;
Et voici l'ajout nécessaire pour n'éditer que les quantiles :
ods select Quantiles;
proc univariate data=work.skate;
run;

Comme vous le constatez il suffit d'ajouter une seule instruction, ods en l'occurrence, avant le bloc univariate. Le souci, vous en conviendrez, c'est qu'il faut au préalable connaitre l'identifiant du tableau que l'on désire conserver (ici "Quantiles"). L'identification des noms de sortie est possible via ce que SAS appelle une trace.
Les traces ODS
Activons la trace et voyons ce qu'il se passe :
ods trace on;
proc univariate data=work.skate;
run;
ods trace off;
Nous avons ci-dessus lancer une proc univariate après avoir activé une trace ods. Nous constatons également que nous avons pris soin de désactiver cette trace après le bloc univariate. La sortie de la proc univariate reste identique, le changement notable se trouve dans le journal puisque celui-ci, en plus des informations relatives à la durée du traitement, laisse désormais apparaitre ceci :
Sortie ajoutée : ------------- Nom : Moments Libellé : Moments Modèle : base.univariate.Moments Chemin : Univariate.age.Moments ------------- Sortie ajoutée : ------------- Nom : BasicMeasures Libellé : Mesures de base de tendance centrale et de variabilité Modèle : base.univariate.Measures Chemin : Univariate.age.BasicMeasures ------------- Sortie ajoutée : ------------- Nom : TestsForLocation Libellé : Tests de tendance centrale Modèle : base.univariate.Location Chemin : Univariate.age.TestsForLocation ------------- Sortie ajoutée : ------------- Nom : Quantiles Libellé : Quantiles Modèle : base.univariate.Quantiles Chemin : Univariate.age.Quantiles ------------- Sortie ajoutée : ------------- Nom : ExtremeObs Libellé : Observations extrêmes Modèle : base.univariate.ExtObs Chemin : Univariate.age.ExtremeObs -------------
Comme vous le voyez chaque tableau est désigné comme une sortie ajoutée. Pour chacune d'entre elles figurent le nom, le libellé, le modèle et le chemin. Nous nous contenterons pour notre part de relever le nom, puisque c'est cette information que nous donnerons a l'ods pour filtrer la ou les sorties qui nous intéressent.
Redirection des sorties
Comme précisé en préambule, l'ods a initialement été prévu pour diriger un rapport SAS vers
une sortie spécifique (html, pdf, image, etc...). Les formats disponibles sont relativement
nombreux, aussi il est conseillé d'aller faire un tour sur le site SAS. Un tableau de synthèse
est notamment disponible.
Pour illustrer nos propos, nous allons rediriger la sortie de la proc univariate vers un fichier
html :
ods html file="skate_park_univariate.html" path="/home/u49997643/gorenja";
proc univariate data=work.skate;
run;
Le code parle de lui-meme, c'est relativement simple, mais tellement pratique.
Retrouvez dans la rubrique "Nos datasets" toutes les données dont vous aurez besoin pour tester et pratiquer !