sas
Creare variabili macro
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
eTHRU
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