SAS 循环遍历宏变量
SAS Looping Through Macro Variables
我想要一个循环遍历宏变量名称列表的程序,returns%DO 循环中每个宏变量的值,而不是只返回宏变量名称。
%let macro_list = AA BB CC;
%let loop = %sysfunc(countw(¯o_list.));
%let AA = 123;
%let BB = 456;
%let CC = 789;
%macro test();
%do i = 1 %to &loop.;
%let var = %scan(¯o_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) ;
我想要一个循环遍历宏变量名称列表的程序,returns%DO 循环中每个宏变量的值,而不是只返回宏变量名称。
%let macro_list = AA BB CC;
%let loop = %sysfunc(countw(¯o_list.));
%let AA = 123;
%let BB = 456;
%let CC = 789;
%macro test();
%do i = 1 %to &loop.;
%let var = %scan(¯o_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) ;