SAS 循环遍历宏变量

SAS Looping Through Macro Variables

我想要一个循环遍历宏变量名称列表的程序,returns%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;

当前宏 returns AA、BB、CC 的值,而不是 123、456、789。

我也愿意接受其他实现方式。谢谢!

您需要添加更多&

%put &var = &&&var ;

或使用%superq()函数。

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