%macro dd(data);
data _null_;
set &data;
if ProbF>0.05 then f=1;
else f=0;
if _n_=1;
call symput('h',f);
run;
%if &h=1 %then %do;data ttest.d;
set &data;
if _n_=2;
keep tValue Probt
run;
%end;
%else %do;data ttest.d;
set &data;
if _n_=3;
keep tValue Probt
run;
%end;
%mend;
%macro ttest(data,cls,var);
libname ttest "D:\SASTT";
ods listing close;
ods output Summary=ttest.a;
proc means data=&data mean std;
class &cls;
var &var;
run;
ods output close;
ods output TTests=ttest.b2 Equality=ttest.b1;
proc ttest data=&data;
class &cls;
var &var;
run;
ods output close;
data ttest.c;
set ttest.b1(keep=FValue ProbF) ttest.b2 ;
run;
%dd(ttest.c);
ods listing;
data ttest.e;
merge ttest.a ttest.d;
run;
proc print data=ttest.e;
run;
%mend;
%ttest(sashelp.class,sex,height);