Tôi muốn tạo ra một cái gì đó trong SAS hoạt động như một chức năng tra cứu Excel. Về cơ bản, tôi đặt giá trị cho các biến macro var1
, var2
, ... và tôi muốn tìm số chỉ mục của chúng theo bảng ref
. Nhưng tôi nhận được các thông báo sau trong bước dữ liệu.biến vĩ mô là uninitialized sau khi% let tuyên bố trong sas
NOTE: Variable A is uninitialized.
NOTE: Variable B is uninitialized.
NOTE: Variable NULL is uninitialized.
Khi tôi in các biến &num1
, &num2
, tôi nhận được gì. Đây là mã của tôi.
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;
tôi có thể nhận các giá trị chính xác cho &num1
, &num2
, .. nếu tôi gõ varname='A'
trong báo cáo if-then
. Và nếu sau đó tôi đổi câu trả lời thành varname=&var1
, tôi vẫn có thể nhận được kết quả yêu cầu. Nhưng tại sao nó như vậy? Tôi không muốn nhập giá trị chuỗi thực tế và sau đó thay đổi nó trở lại biến vĩ mô để có được kết quả mọi lúc.
tôi muốn đề nghị bạn thực hiện tìm kiếm trên http://www.lexjansen.com/ cho "tra cứu" để tìm giấy tờ SAS trên nhiều cách khác nhau để làm điều này loại điều trong SAS. – DWal