libname biostat "E:\作业2";
%let data=biostat.shengtong;
%let keepvar=A2 A3 A6 A10 A11;
%macro ttest;
proc contents data=&data. (keep=&keepvar.) varnum out=namelist noprint;
run;
proc sql noprint;
select distinct name
into :depent separated by ' '
from namelist;
proc sql noprint;
select count(*) into : nobv
from namelist;
quit;
%do i=1 %to &nobv;
%let var_=%sysfunc(scan(&depent,&i,’ ‘));
ods output Equality=equality_&i TTests=TTests_&i;
proc ttest data=&data;
var &var_;
class a8;
run;
data equality_&i;
set equality_&i;
if probf>=0.05 then qixing="yes";
else qixing="no";
run;
%put &var_;
proc sql noprint;
select distinct qixing
into :ttest separated by ' '
from equality_&i;
quit;
%put &ttest;
%if &ttest='yes' %then %do;
data ttest_&var_;
set Ttests_&i;
if Variances ne "Equal" then delete;
run;
%if &ttest='no' %then %do;
data ttest_&var_;
set TTests_&i;
if Variances ne "Unequal" then delete;
run;
%end;
%end;
%end;
%mend;
%ttest;