data a;
input x@@;
cards;
1 2 3 4
;run;
data b;
input y1$ y2@@;
cards;
a 1
a 3
b 4
c 2
;run;
proc sort data=b;by y2;run;
proc sql noprint;
select count(distinct(y1)) into: n from b;
quit;data tmp1; do i=1 to &n ; output; end;run;
proc sql noprint;
create table tmp2 as select distinct y1 from b;
create table c as select * from tmp2,a;
create table tmp0 as select * from b,tmp1;
;quit;
data tmp3;set tmp0;drop i;rename y1=y3;run;
data tmp4;merge c tmp3;run;
data d;set tmp4;if y1=y3 then z=x;else z=0;keep z y1;run;