data Table1;
input MasterList $;
cards;
A
B
C
D
E
F
G
;
run;
data Table2;
input Var1 $;
cards;
A
B
E
G
;
run;
data Table3;
input Var2 $;
cards;
B
C
E
F
;
run;
data _null_;
length vlst $25.;
set Table1 end=done;
retain vlst ' ';
vlst=catx(' ',vlst,MasterList);
put _all_;
if done then
call symputx('vlst',vlst);
run;
%put &vlst.;
data Test;
array mlist[*] &vlst.;
set Table2 Table3(rename=(var2=var1)) indsname=dsname;
do i=1 to dim(mlist);
if vname(mlist[i])=var1 then
mlist[i]=1;
else mlist[i]=0;
end;
varname=transtrn(scan(dsname,2),'TABLE','VAR');
Drop i Var1;
run;
proc means data=test nway missing noprint;
class varname;
var &vlst.;
output out= want(drop=_:) sum=;
run;
... View more