Macro sas
N’est pas stockée dans une table SAS
Ne contient qu’une seule valeur
Est systématiquement alphanumérique
Son nom est limité à 32 caractères
Le nom commence par un caractère alpha ou un _
Le nom ne comporte aucun caractère spécial (hormis le _)
Macro-variable :
Elle peut contenir : des lettres, des chiffres, des blancs, des caractères spéciaux, des délimiteurs
Longueur maximum : 32767 caractères en version 8
Comment créer une macro-variable ?
Instruction %LET %let varmac1=2009 ; %let varmac2=C:\Mes Documents\SASFiles ; Peut être utilisée dans ou en dehors d’une étape DATA
Instruction CALL SYMPUT CALL SYMPUT (‘varmac3’,12345) ; Obligatoirement dans une étape DATA
Comment lire une macro-variable ?
Le signe & indique le début d’une macro-variable DATA work.tab&annee ; Création d’une table dont le nom contient la macro-variable annee
Le signe . indique la fin d’une macro-variable DATA work.tab&annee.&mois ; Concaténation
L’instruction %put permet d’afficher le contenu d’une macro-variable dans le journal (LOG) %put&annee ;
Comment supprimer des macro-variables ?
%SYMDEL annee mois ;
Macros-variables SAS
Commence toujours par SYS SYSDATE(date d’ouverture de la session) SYSTIME(heure d’ouverture de la session)
Exercice : prendre que west et 1993 :
DATA appli.prdsale;
SET sashelp.prdsale;
RUN;
%let reg=WEST;
%let annee=1993;
DATA work.prdsale®._&annee;
SET appli.prdsale;
WHERE REGION="®" AND YEAR=&annee ;
RUN;
Macro-programme :
Un macro-programme est un programme paramétré
Il doit être compilé pour pouvoir être ensuite exécuté
Il est utilisable tout au long de la session SAS
Il utilise de 0 à n paramètres
Macro-programme :
Création (compilation) Début du macro-programme %macro M_Macro1(param1=,param2=) ; Fin du macro-programme %mend M_Macro1;
Exécution
%M_Macro1(param1=5,param2=b);
Catalogue : SASMACR
Exercice :
%macro