data survey;
input id diet exer hours xwk educ;
datalines;
1 1 . 1 3 1
1 . 2 1 4 2
1 . 4 . . .
1 1 5 2 3 .
2 . 9 2 3 .
2 5 9 2 4 .
2 . 3 . 5 3
3 2 . . . .
;
%macro count_miss(ds=
,byvar=
,vars=);
%let i=1;
%let var1=%sysfunc(scan(&vars,1));
%do %until(&v eq );
%let i=%eval(&i+1);
%let v=%sysfunc(scan(&vars,&i));
%let var&i=&v;
%end;
%let varnum=%eval(&i-1);
proc sql;
create table countmiss as
select distinct &byvar
%do i=1 %to &varnum;
,sum(missing(&&var&i)) as &&var&i.._miss
%end;
from &ds
group by &byvar;
quit;
%mend;
%count_miss(ds=survey
,byvar=id
,vars=diet exer hours xwk educ)


雷达卡







京公网安备 11010802022788号







