%macro power2x2(version, p1=, p2=, n1=, n2=, level=.05, nmin=, nmax=); %if &version ne %then %put POWER2x2 macro Version 1.0; data _power_; p1=&p1; p2=&p2; level=&level; diff=p1-p2; %if &n1 ne %str() and &n2 ne %str() %then %do; n1=&n1; n2=&n2; n=n1+n2; nmin=n; nmax=n; %end; %else %if &nmin ne %str() and &nmax ne %str() %then %do; nmin=&nmin; nmax=&nmax; %end; /* select 'nice' range of total sample sizes */ diforder=10**(max(floor(log10(nmax-nmin+1e-8)),1)-1); normlen=(nmax-nmin)/diforder; step=diforder*((normlen<=20)+2*(20