One way to do it is this: generate the code for checking, and put it in a temporary file, which you can %include:
filename tempsas temp;
data _null_;
if 0 then set have;
file tempsas;
do varnum=1 to 58;
varname=cats('VAR',varnum);
if vtypex(varname)='N' then put
'if not ' varname 'then return;';
else put
'if missing(' varname ') then return;';
put 'nonmiss' varnum '+1;';
end;
stop;
run;
data want;
set have end=eof;
retain nonmiss1-nonmiss58 0;
link checkvars;
if eof;
keep nonmiss:;
return;
checkvars:
%include tempsas;
return;
run;
I am not sure what check you want on the character variables, you may want to change the line after "else put".
... View more