data have;
call streaminit(123);
do fy='2022','2023','2024';
do obs=1 to 100;
var1=rand('uniform'); if rand('uniform')<0.1 then call missing(var1);
var2=rand('uniform'); if rand('uniform')<0.2 then call missing(var2);
var3=rand('uniform'); if rand('uniform')<0.3 then call missing(var3);
var4=rand('uniform'); if rand('uniform')<0.4 then call missing(var4);
var5=rand('uniform'); if rand('uniform')<0.5 then call missing(var5);
output;
end;
end;
run;
proc sql;
create table temp as
select fy,
nmiss(var1)/(select count(*) from have where fy=a.fy) as var1,
nmiss(var2)/(select count(*) from have where fy=a.fy) as var2,
nmiss(var3)/(select count(*) from have where fy=a.fy) as var3,
nmiss(var4)/(select count(*) from have where fy=a.fy) as var4,
nmiss(var5)/(select count(*) from have where fy=a.fy) as var5
from have as a
group by fy;
quit;
proc transpose data=temp out=want prefix=fy;
id fy;
var var1-var5;
run;
... View more