webgu 发表于 2012-6-10 22:49
/*生成中间辅助数据集*/
data b;
do a=1 to 2; /*假设你的a 数据集中变量a的值只到2*/
非常感谢你的回答,不过我的a不是规律的。
我自己想了个办法,写出来跟大家分享下
data a;
set b;
by a;
if first.a;
run;
data d;
set a;
by a;
do i=1 to 4;
b=i;
output;
drop i;
end;
proc sort data=d;
by a b;
run;
proc sort data=b;
by a b;
run;
data e;
merge d b;
by a b;
run;
data inter;
do a=1 to 2;
do b=1 to 4;
output;
end;
end;
run;
/* Let Origin be the data set containing your original data*/
proc sql;
create table New as
select I.*, c
from Origin as O
right join Inter as I
on O.a =I.a and O.b=I.b
;
quit;