Posts Tagged ‘paramètres’

h1

Le luxe des macros, B.A.BA de la syntaxe

février 18, 2008

voiture_bleue.jpg 

Pour répéter un même programme SAS avec quelques nuances, trois possibilités s’offrent à vous :

  1. la macro,
  2. le data _null_,
  3. le call execute.

Aujourd’hui, je vous propose de voir la notation de base pour la création d’une macro. Pour pouvoir ensuite développer vos propres macros, vous devrez savoir comment résoudre une macro variable.

1. Définition et appel : le minimum

1.1 Encadrer votre programme entre les instructions %MACRO et %MEND : une des caractéristiques du langage macro est l’utilisation du signe pourcentage (%) devant des mots-clés. Ceux qui créent une macro n’échappent pas à la règle. On trouve le %MACRO pour annoncer le début de la définition et le %MEND pour arrêter la définition. Pourquoi le mot %MEND ? M est la référence au mot MACRO et END est le mot FIN en anglais.

%macro;
*mon programme SAS;
%mend;

Important : on s’assurera que la définition de la macro est terminée avant d’en commencer une nouvelle.

1.2 Un nom pour ma macro : il faudra aussi donner un nom à la macro pour pouvoir l’identifier par la suite.

%macro monlisting;
*mon programme SAS;
%mend monlisting;

L’utilisation du nom de la macro en clôture n’est pas obligatoire mais c’est un bon repère dans votre programme.

1.3 Appel de macro : pour appeler votre macro, il vous suffit ensuite de faire précéder le nom de la macro du signe pourcentage.

%monlisting;

2. Imaginez un questionnaire en ligne avec des champs à remplir : parfois une valeur est inscrite par défaut, parfois le texte à remplir est libre ou réduit à un éventail de proposition. Dans notre cas, le champ est un paramètre de la macro. Derrière chacun de ces champs se cache un nom. Il faudra donc donner un nom à ce paramètre. Et enfin, la valeur d’origine est optionnelle. Ces paramètres, qui permettent de nuancer le programme, sont définis dans l’instruction %macro :

%macro monlisting(annee=ALL,imprimer=NO,patient=);

2.1 Utiliser les valeurs par défaut : pour appeler la macro en utilisant les paramètres par défaut, on écrira soit la macro sans paramètres, ou on pourra rappeler les valeurs d’origine pour améliorer la lisibilité, si besoin est.

%monlisting;
%monlisting(annee=ALL,imprimer=NO,patient=);

2.2 Changer les valeurs des paramètres : pour appeler la macro avec une option d’impression différente, le paramètre imprimer sera ajouté :

%monlisting (imprimer=YES);

Important : ici j’ai fait le choix de vous présenter la notation la plus pratique, mais ce n’est pas la seule. Le signe égal est indiqué même si tous les paramètres n’ont pas de valeur par défaut. Ainsi lors de l’appel de macro, on pourra agir sur les paramètres :

  • plus besoin de lister tous les paramètres
  • plus besoin de respecter l’ordre d’origine des paramètres

3. Utiliser les valeurs des paramètres dans le programme : les paramètres d’une macro sont considérés comme des macros variables et rappelés dans le programme comme tels.