Comment configurer vos sorties GIF sous SAS : Dimensions, Pilotes et Astuces Macro

Ce code est également disponible en : Deutsch English Español
Niveau de difficulté
Confirmé
Publié le :
Stéphanie

Le Conseil de l'Expert

Stéphanie
Spécialiste Machine Learning et IA.

L'intérêt de cette macro %gif réside dans sa capacité à standardiser la production de rendus visuels tout en restant flexible. En encapsulant la gestion du fileref (gsasfile) et les GOPTIONS de dimensionnement, elle libère le développeur des configurations redondantes. Le point fort ici est la gestion intelligente du pilote (device) : le script privilégie l'argument passé à la macro, mais sait rebondir sur une variable d'environnement système via %SYSGET. C'est une excellente pratique pour garantir que vos programmes SAS restent portables et s'adaptent automatiquement à l'OS ou à la session client utilisée, sans modification du code source.

Cette macro nommée 'gif' permet de définir les paramètres de sortie pour la création de graphiques au format GIF. Elle configure le nom du fichier de sortie, le pilote de périphérique (device), et les dimensions (horizontale et verticale) de l'image. La macro utilise une autre macro (%sasgfile) pour déterminer le nom de base du fichier. Les paramètres peuvent être passés directement, ou lus depuis des variables de macro globales ou des variables d'environnement système.
Analyse des données

Type : CREATION_INTERNE


La macro ne traite aucune donnée en entrée. Son rôle est de configurer l'environnement graphique pour la génération de fichiers, et non de manipuler des tables de données.

1 Bloc de code
Macro
Explication :
Ce bloc définit la macro '%gif'. Elle commence par déterminer le nom du fichier de sortie via l'appel à la macro '%sasgfile'. Ensuite, elle résout le pilote graphique à utiliser ('device'), en priorisant le paramètre de la macro, puis une variable de macro globale 'DRIVER', puis une variable d'environnement 'DRIVER', et enfin la valeur par défaut 'gif'. Elle définit un fileref 'gsasfile' pour le chemin de sortie. Finalement, elle applique les configurations à l'aide de l'instruction GOPTIONS, en spécifiant le pilote, le chemin d'accès, le mode de remplacement et les dimensions de l'image.
Copié !
1%macro gif(
2 fn,
3 device=,
4 hsize=,
5 vsize=
6 );
7 
8 %*-- Get the basename of the graphic file(s);
9 %sasgfile(gif,&fn);
10 
11 %IF %LENGTH(&device) %THEN %DO;
12 %let dev=&device;
13 %END;
14 %ELSE %DO;
15 %IF not %defined(DRIVER) %THEN
16 %let driver =%SYSGET(DRIVER);
17 %IF &driver=%str() %THEN %let driver = gif;
18 %let dev=&driver;
19 %END;
20
21 %let devtyp = GIF;
22 %let fig=1;
23 %IF %defined(gsasdir)=0 %THEN %let gsasdir=;
24 %put GIF: gsasfile is: "&gsasdir.&gsasfile" (&dev driver);
25 filename gsasfile "&gsasdir.&gsasfile";
26 
27 goptions device=&dev gaccess=gsasfile
28/* hpos=80 vpos=75 match pscolor device */
29 gsflen=80 gsfmode=replace;
30 goptions vsize=&vsize hsize=&hsize;
31%mend gif;
L'Astuce Pro
Assurez-vous de toujours declarer vos macro-variables DEV et FIG en tant que %LOCAL au sein de la macro GIF pour eviter d'ecraser accidentellement des parametres globaux portant le meme nom, ce qui pourrait corrompre d'autres instructions GOPTIONS ou des sorties graphiques ulterieures dans votre session SAS.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Author: Michael Friendly <friendly @yorku.ca>