sas
Création de variables de macro
Recherche…
Introduction
L'utilisation de variables macro dans tous vos programmes SAS est une fonctionnalité de base que tous les programmeurs SAS doivent connaître. L'utilisation de variables macro peut vous aider à garder votre code simple et générique. Le code générique est un code réutilisable.
Utiliser% LET
Je décrirais% LET comme le moyen le plus simple de créer une variable macro dans SAS.
%LET variableName = variableValue;
Désormais, où que vous utilisiez &variableName
, cela se résoudra à variableValue
.
REMARQUE: vous pouvez considérer que
variableValue
seul peut vous amener des erreurs de syntaxe, en fonction de la valeur et de son utilisation. Par exemple, s'il s'agit d'une date et que vous l'utilisez dans le cadre d'une instruction PROC SQL, vous devrez l'écrire sous la forme"&variableName"d
pour fonctionner correctement.
Utilisation de PROC SQL
Utiliser PROC SQL est un bon moyen d'obtenir des résultats rapides à partir d'une table et de les lancer dans des variables. J'ai l'habitude de constater que lorsque je veux compter le nombre d'enregistrements que je viens de charger dans une table, je peux obtenir ce nombre dans une variable avec un appel rapide PROC SQL.
PROC SQL;
SELECT
COUNT(*) INTO:aVariable
FROM
MyTable
;QUIT;
Dans l'exemple ci-dessus, aVariable
représentera le nombre d'enregistrements existant dans MyTable
.
Vous pouvez également utiliser PROC SQL pour créer plusieurs variables de macro.
PROC SQL;
SELECT
a,
b,
c INTO:aVariable, :bVariable, :cVariable
FROM
MyTable
;QUIT;
Dans l'exemple ci-dessus, les variables créées dans l'instruction INTO correspondent aux colonnes extraites dans l'ordre dans lequel elles sont renvoyées par l'instruction SELECT. Cependant, seule la première ligne de résultats sera utilisée pour remplir ces 3 variables.
Si vous souhaitez stocker plusieurs lignes et que vous utilisez la version 6.11 ou supérieure, utilisez l'exemple suivant:
PROC SQL;
SELECT DISTINCT
a,
b,
c INTO :aVariable1 - :aVariable5,
:bVariable1 - :bVariable5,
:cVariable1 - :cVariable5
FROM
MyTable
;QUIT;
Les mots-clés
THROUGH
etTHRU
peuvent-ils être utilisés en lieu et place du tiret-
Utilisation de Call Symput () dans une étape DATA
DATA _null_;
CALL SYMPUT('testVariable','testValueText');
;RUN;
Dans l'exemple ci-dessus, %PUT &testVariable;
va résoudre à testvalueText
.
Vous pouvez trouver le besoin de formater votre variable dans l'appel SYMPUT ().
DATA _null_;
CALL SYMPUT('testDate',COMPRESS(PUT(today(),date9.)));
;RUN;
Dans l'exemple ci-dessus, %PUT &testDate;
va résoudre à 10MAR2017