SAS通过宏变量循环

时间:2017-02-23 03:25:34

标签: loops sas sas-macro

我想要一个循环遍历宏变量名列表的程序,并返回%DO循环中每个宏变量的值,而不是只返回宏变量名。

%let macro_list = AA BB CC;
%let loop = %sysfunc(countw(&macro_list.));

%let AA = 123;
%let BB = 456;
%let CC = 789;

%macro test();

    %do i = 1 %to &loop.;

%let var = %scan(&macro_list.,&i);
%put &var.; /* I want this to return 123 not AA!!!*/

    %end;
%mend test;

%test;

目前,宏返回AA,BB,CC的值而不是123,456,789。

我也愿意采用其他方式来实现这一点。谢谢!

1 个答案:

答案 0 :(得分:2)

您需要添加更多&

%put &var = &&&var ;

或使用%superq()功能。

%put &var = %superq(&var) ;