|
楼主

楼主 |
发表于 2007-1-11 08:57:05
|
只看该作者
数据集变量重新赋值
想通过下面的一次宏调用把tmp1里面id和相应的变量值改掉,但是做不到。如何实现?谢谢
data tmp1;
input id var1 var2 var3;
cards;
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
;
run;
data tmp2;
input id var_nm $ value;
cards;
1 var1 2
2 var2 2
2 var1 2
3 var3 2
;
run;
data _null_;
set tmp2 end=final;
call symput(("id"||compress(_n_)),id);
call symput(("var_nm"||compress(_n_)),var_nm);
call symput(("value"||compress(_n_)),value);
if final then call symput("n",_n_);
run;
%macro a;
%do j=1 %to &n;
data tmp3;
set tmp1;
if id=&&id&j then do;
put id;
%put &&id&j &&var_nm&j &&value&j;
&&var_nm&j = &&value&j;
end;
run;
%end;
%mend;
%a; |
|