La chronique SAS : En faire plus avec l’Output Delivery System (ODS)

le 6 janvier 2012 à 14:50
Jean-Francois Plante

Qui ne connaît pas l’Output Delivery System (ODS) de SAS ? Tout le monde sait qu’en l’utilisant, on peut rediriger des résultats obtenus avec SAS vers d’autres destinations que la fenêtre de sortie usuelle, par exemple vers des fichiers de format PDF ou HTML. Toutefois, l’ODS permet de faire bien plus. J’aimerais, dans cette chronique, illustrer sa flexibilité.

La destination
Pour envoyer des résultats vers une destination différente de la fenêtre de sortie de SAS usuelle, on peut se servir de l’instruction ODS; il s’agit alors de spécifier l’emplacement et le nom du fichier que l’on désire créer. L’encadré 1 présente un exemple où les résultats d’une régression (obtenus de Proc REG) sont enregistrés en format HTML.

C’est quoi ton nom?
Tout cela est bien, mais existe-t-il une façon de dire à SAS de ne pas afficher tous les résultats? Par exemple, on pourrait vouloir que Proc REG ne génère que la table des estimations des paramètres. Pourrais-je aussi envoyer cette dernière dans une table SAS? L’instruction ODS permet d’y arriver, mais il est essentiel de connaître le nom des objets de sortie. Ces derniers sont la pierre angulaire d’ODS : pres-que toutes les procédures SAS utilisent des objets de sortie. Ils sont de deux types : tabulaire et graphique. Pour connaître leur nom, on doit utiliser l’instruction ODS TRACE. L’encadré 2 présente un exemple.

L’instruction TRACE va permettre d’afficher dans la fenêtre journal plusieurs informations relatives à ODS, incluant les noms des objets de sortie ODS. L’encadré 3 montre un affichage partiel de la fenêtre journal. Le nom des objets de sortie se retrouve aux lignes «Name :». Par exemple, on sait maintenant que le nom de l’objet de sortie ODS pour les estimations des paramètres est «ParameterEstimates».

Sélection par les noms des objets de sortie
Une fois que les noms des objets de sortie ODS sont connus, il est possible de faire plus avec ODS. Par exemple, on pourrait faire afficher un sous-ensemble des résultats obtenus en les sélectionnant avec l’instruction SELECT. Dans l’exemple présenté à l’encadré 4, il y a deux destinations : LISTING (la fenêtre de sortie qui est activée par défaut) et HTML. Tous les résultats de la régression seront affichés dans la fenêtre de sortie, mais seulement les estimations des paramètres seront transcrits dans la sortie HTML (voir l’encadré 5).

L’instruction SELECT doit être utilisée en spécifiant le nom de l’objet de sortie ODS (dans l’exemple précédent, c’est ParameterEstimates).

À remarquer que dans la fenêtre des résultats de SAS (et il en est ainsi dans la fenêtre de sortie), tous les résultats ont été transcrits; le rapport HTML ne contient que les estimations de paramètres. À noter aussi que l’instruction EXCLUDE permet d’exclure certains résultats.

Envoie de résultats dans un fichier de données SAS
Savez-vous qu’il existe une destination qui permet d’écrire dans un fichier de données SAS? Il s’agit de la destination OUTPUT. Dans l’exemple qui suit (voir les encadrés 6 et 7), l’instruction ODS OUTPUT est utilisée pour écrire les estimateurs des paramètres dans une table SAS, et les statistiques d’adéquation dans une autre. Encore une fois, il faut utiliser le nom des objets de sortie.

Conclusion
On voit que l’instruction ODS de SAS est bien plus que la simple transcription de résultats vers des fichiers de destination. On peut sélec-tionner un sous-ensemble de résultats pour une certaine destination, envoyer ce dernier vers un fichier de données SAS, l’envoyer dans un courriel, créer une table des matières, combiner des résultats ensemble, etc. Cette grande flexibilité provient en grande partie de la panoplie des objets de sortie possibles. Je vous invite à expérimenter avec ODS et vous souhaite de bien profiter de l’été!

FacebookTwitterGoogle+LinkedIn