data aa;
length grp $20;
do i=1 to 1000;
x=10+2*rannor(1);
grp='aa0';
output;
end;
run;
%macro test(dsn=,samplen=100,seed=,b=0);
%do i=1 %to &dsn;
%syscall ranuni(seed,b);
proc surveyselect data=aa out=aa&i method=srs n=&samplen seed=&seed;
run;
data aa&i;
set aa&i;
length grp $20;
grp="aa&i";
run;
data final;
set aa&i aa;
run;
proc ttest data=final;
class grp;
var x;
ods output ttests=stat(keep=variable variances probt) equality=vareq(keep=variable probf);
run;
data stat;
merge stat vareq;
by variable;
run;
data stat&i;
set stat;
length grp $20;
grp="aa&i";
if probf>0.05 then
if upcase(variances)='EQUAL';
else if probf<=0.05 then
if upcase(variances)='UNEQUAL';
run;
%end;
data want;
set %do i=1 %to &dsn; stat&i %end;;
run;
proc datasets;
delete %do i=1 %to &dsn; stat&i %end;;
%mend;
%test(dsn=100,samplen=100,seed=123456);