好吧,仔细研究了一下,双set也不好实现。
data a;
set a;
obs = _N_;
run;
proc sort data =a; by name; run;
data a;
set a; by name;
if first.name then vobs = 0;
vobs + 1;
run;
proc sort data = b; by name; run;
data b;
set b; by name;
if first.name then vobs = 0;
vobs + 1;
run;
proc sql noprint;
create table c as
select a.name,b.v1, b.v2, a.v3, a.v4, a.obs
from a left join b
on a.name = b.name and a.vobs = b.vobs
order by obs ;
quit;
data c(drop = obs);
set c; by obs;
if first.obs then output;
run;
把a先去掉观测4,然后merge,再加上观测4,再恢复顺序,也可以实现


雷达卡
京公网安备 11010802022788号







