The following SAS datastep conducts a test using functions in a datastep.

proc means data=both STACKODSOUTPUT n mean std min max stderr ;

class treat ;

var

<Variables here>

;

ods output summary=kaz2;

run;

data c;set kaz2;

if treat=0;

N_c=N;

mean_c=mean;

StdDev_c=StdDev;

Min_C=Min;

Max_C=Max;

StdErr_C=StdErr;

keep N_C MEAN_C StdDev_c MIN_C MAX_C StdErr_C Variable label;

run;

data t;set kaz2;

if treat=1;

N_t=N;

mean_t=mean;

StdDev_t=StdDev;

Min_t=Min;

Max_t=Max;

StdErr_t=StdErr;

Variable_QC=Variable;

keep N_T MEAN_T StdDev_t MIN_T MAX_T Variable_QC StdErr_t;

run;

data merge_CT;

merge C T ;

difference=MEAN_T-MEAN_C;

/*https://www.itl.nist.gov/div898/handbook/eda/section3/eda353.htm*/

POOLED_SE=sqrt( ( (StdDev_t*StdDev_t) / N_T ) + ( (StdDev_c*StdDev_c ) / N_C ) );

T_value=abs(difference)/POOLED_SE;

P_value=(1-probnorm(T_value))*2;

*if P_value < 0.1 then sig=”t”;

if P_value < 0.05 then sig=”* “;

if P_value < 0.01 then sig=”** “;

if P_value < 0.001 then sig=”***”;

if P_value =. then sig=””;

run;