logo

L’ODS expliqué à ma fille

Depuis la version 7 de SAS, la syntaxe s’est enrichie d’une vaste série d’instructions ODS (Output Delivery System). Le concept associé sous-tend le fonctionnement de l’ensemble des procédures de SAS. Ce court document se veut une introduction à ce qu’est l’ODS et comment il fonctionne.

Principe de l’ODS

La procédure SAS n’est plus dépositaire de la mise en forme des sorties. Elle se contente de faire les calculs demandés, et transmet les éléments à mettre en forme à l’ODS. Le ou les objets ODS produits par la procédure sont ensuite pris en charge par l’Output Delivery System pour les inclure dans un document (listing, Word, page Web, PDF, …) définitif. La destination ODS est le type de fichier produit. (Cliquer sur l’image pour l’afficher en grande taille.)

principe de l'ODS

Syntaxe de l’ODS

Hormis la destination LISTING qui est ouverte par défaut, l’ODS ne fonctionne pas spontanément dans SAS. Il est nécessaire de signaler l’ouverture et la fermeture d’une destination ODS dans un programme.

ODS destination FILE = "chemin et nom du fichier créé" ;
    PROC … ;
        …
    RUN ;
    …
    PROC … ;
        …
    RUN ;
ODS destination CLOSE ;

Il est possible d’ouvrir plusieurs destinations ODS simultanément. Les précautions à prendre sont, entre autres :

  • on ne peut en général consulter le document produit qu’après la fermeture de la destination ODS ;
  • si un fichier du nom de celui à créer existe déjà, il ne doit pas être utilisé (ouvert par une application) au moment de l’exécution du programme chargé de le remplacer ;
  • les graphiques sont un peu plus compliqués à inclure dans un document HTML. Ils ne font pas partie intégrante de la page Web, mais doivent être stockés sous forme de fichiers séparés et adressés par des liens depuis la page Internet. Il faut alors ajouter à l’instruction ODS HTML une information sur le répertoire de stockage des images et la forme du lien.

Deux petits exemples illustrent le fonctionnement de l’ODS.

Exemple 1 : ODS RTF

ODS RTF FILE = "c:\temp\cours de Bourse journaliers.doc" ;
    PROC PRINT DATA = sashelp.citiday (OBS=30) LABEL NOOBS ;
       VAR date SNYDJCM SNYSECM ;
    RUN ;
ODS RTF CLOSE ;

Exemple 2 : ODS HTML avec image

ODS HTML FILE = "c:\temp\cours de Bourse journaliers.htm"
        GPATH = "c:\temp\ " (URL=NONE) ;
    PROC PRINT DATA = sashelp.citiday (OBS=30) LABEL NOOBS ;
       VAR date snydjcm snysecm ;
    RUN ;
    SYMBOL i = join ;
    PROC GPLOT DATA = sashelp.citiday ;
       PLOT snysecm * date ;
    RUN ; QUIT ;
ODS HTML CLOSE ;

Dans ce dernier programme, la page Web et le fichier image sont stockés dans le même répertoire. L’option GPATH désigne le répertoire de stockage des images. La sous-option (URL=NONE) indique que les images et la page Web sont dans le même répertoire : le lien entre les deux ne doit donc pas mentionner autre chose que le nom de l’image à afficher dans la page HTML.

1 found this helpful