data aa;
input stkcd cd value;
cards;
1 1 20
1 2 56
1 5 86
2 1 94
2 2 25
2 3 39
2 5 5
3 2 25
3 5 86
;
run;
proc sort data=aa;
by stkcd cd;
run;
data bb;
set aa;
by stkcd cd;
if first.stkcd ;
do while (cd<=5);
output;
cd=cd+1;
end;
keep stkcd cd;
run;
proc sql;
create table cc as
select a.*, b.value
from bb as a left join aa as b
on a.stkcd=b.stkcd and a.cd=b.cd
order by a.stkcd, a.cd;
quit;
data dd;
set cc;
by stkcd cd;
retain _value;
if value ne . then _value=value;
if value=. then value=_value;
drop _value;
run;
|