|
楼主

楼主 |
发表于 2006-1-4 15:01:54
|
只看该作者
宏问题求助
%MACRO DSSoutputstep2;
%DO D=1 %To 2;
%let fd=wc000001.id&D.;
%let in="datatem&D.";
data _NULL_;
set &fd;
call symput('scelist',senario_index);
*%let scelist=a1 b1 c1 d1 e1;
run;
%let i=0;
%do %while(%scan(&scelist,&i+1,%str( )) ne %str( ));
%let i = %eval(&i+1);
%let sce = %scan(&scelist,&i,%str( ));
%let out="&sce._&D.";
大家帮我看看吧,senario_index是一个宏&fd代表的data的里面一个变量,我是想把这个变量的值一个一个地读出来,然后用作为输出data (就是"out")的名字, 现在我用call symput('scelist',senario_index);这个语句把这些值附到宏变量scelist里面,然后想一个个读scelist,后来发现scelist应该是一个array,就是像*%let scelist=a1 b1 c1 d1 e1;而我的scelist,如果用put输出的话,是
a1
b1
c1
d1
e1
怎么把着这个转换成array啊? |
|