Ricerca…


introduzione

L'utilizzo delle macro variabili nei programmi SAS è una funzionalità di base che deve essere familiare a ogni programmatore SAS. L'utilizzo delle variabili macro può aiutarti a mantenere il codice semplice e generico. Il codice generico è codice riutilizzabile.

Utilizzando% LET

Descrivere% LET come il modo più semplice per creare una variabile macro in SAS.

%LET variableName = variableValue;

Ora, ovunque tu usi &variableName , si risolverà in variableValue .

NOTA: potresti voler considerare che variableValue da solo potrebbe portare degli errori di sintassi, che dipendono dal valore e dal suo utilizzo. Ad esempio, se si tratta di una data e la si sta utilizzando nel WHERE di un'istruzione SQL PROC, sarà necessario scrivere come "&variableName"d per funzionare correttamente.

Utilizzando PROC SQL

L'utilizzo di PROC SQL è un buon modo per ottenere risultati rapidi da una tabella e inserirli in variabili. Di solito trovo che quando voglio ottenere un conteggio dei record che ho appena caricato su un tavolo, posso ottenere quel conteggio in una variabile con una rapida chiamata PROC SQL.

PROC SQL;
SELECT
    COUNT(*) INTO:aVariable
FROM
    MyTable

;QUIT;

Nell'esempio sopra, aVariable rappresenterà il numero di record presenti in MyTable .

È inoltre possibile utilizzare PROC SQL per creare più variabili macro.

PROC SQL;
SELECT
    a,
    b,
    c INTO:aVariable, :bVariable, :cVariable
FROM
    MyTable


;QUIT;

Nell'esempio sopra, le variabili create nell'istruzione INTO corrisponderanno alle colonne richiamate nell'ordine in cui vengono restituite dall'istruzione SELECT. Tuttavia, solo la prima riga di risultati verrà utilizzata per riempire quelle 3 variabili.

Se vuoi archiviare più di una singola riga e sei sulla versione 6.11 o successiva, usa il seguente esempio:

PROC SQL;
    SELECT DISTINCT
        a,
        b,
        c INTO :aVariable1 - :aVariable5, 
               :bVariable1 - :bVariable5,
               :cVariable1 - :cVariable5
    FROM
        MyTable
;QUIT;

Le parole chiave THROUGH e THRU possono essere utilizzate al posto del trattino -

Uso di Call Symput () in un passaggio DATA

DATA _null_;
            CALL SYMPUT('testVariable','testValueText');
;RUN;

Nell'esempio sopra, %PUT &testVariable; risolverà in testvalueText .

Potresti trovare la necessità di formattare la tua variabile all'interno della chiamata SYMPUT ().

DATA _null_;
            CALL SYMPUT('testDate',COMPRESS(PUT(today(),date9.)));
;RUN;

Nell'esempio sopra, %PUT &testDate; risolverà a 10MAR2017



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow