如何有效地将宏变量循环到SAS宏函数中

时间:2014-10-02 18:08:47

标签: sas sas-macro

我有一个需要在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,我不想逐个指定它们。

1 个答案:

答案 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;