请教各位同学。我编了一个SAS宏,%Analysis(var),宏变量var是每次进行Analysis的变量名。现在我希望能用%Analysis对我数据集中多个变量(例如a,b,c)进行重复操作,该如何实现每次调用时var的自动更改呢?我尝试了一些办法,但都没有达到预期的效果,比如:
data process1;
do f=a,b,c;
end;
%let Var=f;
%Analysis(&Var);
run;
这样运行后,输出窗口显示了变量c的Analysis结果;
我还尝试再编一个宏%reptrans对Analysis进行重复调用,reptrans的参数list为我要调用的变量名列表。如下:
%macro reptrans(List);
%local i condition VarXX;
%let i=1;
%let condition=0;
%do %until (&condition=1);
%let VarXX=%scan(&List,&i,'|');
%if "&VarXX"="" %then %let condition=1;
%else %do;
%local Var&i;
%let Var&i=&VarXX;
%Analysis(&&Var&i);
%let i=%eval(&i+1);
%end;
%end;
run;
%mend;
%let List=a|b|c;
%reptrans(&List);
而这种方法输出窗口只显示了变量a的Analysis结果;
于是我实在是无计可施了。。。请教各位同学,你们是怎么实现这一功能的呢?