|
|
地板

楼主 |
发表于 2009-8-20 17:52:21
|
只看该作者
Re: 请教宏中如何将宏变量中的变量分开
[code:1ag13qg2]%macro list_var /parmbuff;
options nosymbolgen nomprint;
%let num=1;
%let temp=%scan(&syspbuff,&num,',()');
%do %while(&temp ne);
%if &num=1 %then %let dataa=&temp;
%else %if &num=2 %then %let cn=&temp;
%else %if &num=3 %then %let group=&temp;
%else %if &num=4 %then %let yvar=&temp;
%else %let var=&temp;
/* proc glm */
/*%if &num>4 %then %do;
proc glm data=&dataa;
class &cn &group;
model &var=&group &yvar &cn &group*&cn/nouni ss3;
repeated time/printe;
ods output sphericity=test;
ods output modelanova(MATCH_ALL)=anova;
run;
%end;*/
/* temp debug begin */
%if &num=4 %then %do; /* temp put */
%put NOTE: BEGIN ***;
%put NOTE: *** DATA: &dataa CN: &cn GROUP: &group YVAR: &yvar ***;
%end;
%else %if &num>4 %then %put NOTE: *** 第%eval(&num.-4)个VAR为:&temp ***;
/* temp debug end */
%let num=%eval(&num+1);
%let temp=%scan(&syspbuff,&num,',()');
%end;
%put NOTE: END ***; /* temp debug */
%mend;
%list_var(fxf,cn,group,po5a00h1,p05a05h1 p05a1h1 p05a2h1 p05a4h1 p05a6h1 p05a8h1 p05a10h1 p05a12h1 p05a14h1 p05a18h1)
%list_var(fxf,cn,group,po5a00h1,p05a05h1 p05a1h1 p05a2h1 p05a4h1 p05a6h1,p05a8h1 p05a10h1 p05a12h1 p05a14h1 p05a18h1)
%list_var(fxf,cn,group,po5a00h1,p05a05h1,p05a1h1,p05a2h1)[/code:1ag13qg2] |
|