data c;
array temp(0:1000) (&aaa);
do until(missing(temp(i)) );
group=temp(i);
i+1;
output;
end;
;
keep group ;
run;[/code:1xk4otq1]作者: shiyiming 时间: 2009-4-20 21:37 标题: Re: 如何将macro变量 aaa的值 传递到数据集中 %let aaa=1 2 3 b b ccc we4356;
%macro AssignMcr;
%local i;
%let i=1;
data tblAssign;
length group $20.;*a safe length to assure read all components;
%do%while(%scan(&aaa,&i) ne %str( ));
%let nTransit = %scan(&aaa,&i);
group = "&nTransit";*group is a char;
output;
%let i=%eval(&i+1);
%end;
run;
%mend AssignMcr;
%AssignMcr
;
**** frist, i have to say that vicky1020 gave a very good answer and it is more effcient. my program is just for fun. if it works, the program can read char or numeric;if you need group being a numeric, just force it to convert and so on.
Thanks作者: Qiong 时间: 2009-4-21 09:16 标题: Re: 如何将macro变量 aaa的值 传递到数据集中 昨天lz还在问我char形式怎么处理,就有人帮忙了,赫赫。ls的同学考虑真周到。
[code:30go689v]