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 et THRU 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



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow