Voglio creare qualcosa in SAS che funzioni come una funzione di ricerca Excel. Fondamentalmente, ho impostato i valori per le variabili macro var1
, var2
, ... e voglio trovare il loro numero di indice in base alla tabella ref
. Ma ottengo i seguenti messaggi nel passaggio dei dati.non è inizializzata dopo l'istruzione% let in sas
NOTE: Variable A is uninitialized.
NOTE: Variable B is uninitialized.
NOTE: Variable NULL is uninitialized.
Quando stampo le variabili &num1
, &num2
, non ottengo niente. Ecco il mio codice.
data ref;
input index varname $;
datalines;
0 NULL
1 A
2 B
3 C
;
run;
%let var1=A;
%let var2=B;
%let var3=NULL;
data temp;
set ref;
if varname=&var1 then call symput('num1',trim(left(index)));
if varname=&var2 then call symput('num2',trim(left(index)));
if varname=&var3 then call symput('num3',trim(left(index)));
run;
%put &num1;
%put &num2;
%put &num3;
posso ottenere i valori corretti per &num1
, &num2
, .. se digito varname='A'
nella dichiarazione if-then
. E se in seguito cambio la frase in varname=&var1
, posso ancora ottenere l'output richiesto. Ma perché è così? Non voglio inserire il valore effettivo della stringa e quindi riportarlo alla variabile macro per ottenere il risultato ogni volta.
Io suggerirei di fare una ricerca su http://www.lexjansen.com/ per "ricerca" per trovare documenti SAS sui molti modi diversi di fare questo genere di cose in SAS. – DWal