我有一个需要在SAS宏中运行的变量列表。
%let var=
A10Y
B2D
C112D
D
ER
RT
DDS
AQWE
DA
And I have a macro like this:
%macro st(inputx);
proc means data = suy;
var &inputx.;
run;
%mend;
我想写一个循环,因为如果变量的数量大于100,我不想逐个指定它们。
答案 0 :(得分:2)
行。我不会使用宏,我会使用call execute。
创建一个数据集来保存所有变量列表或其他任何内容,然后执行以下操作:
*Create list of variables;
proc sql;
create table var_list as
select name
from sashelp.vcolumn
where libname='SASHELP'
and memname='CLASS'
and type='num';
run;
*Create macro;
%macro st(inputx);
proc means data = sashelp.class;
var &inputx.;
run;
%mend;
*Call macro using call execute;
data _null_;
set var_list;
call execute ("%st("||name||");");
run;