/* option 1 - using CI calculation in PROC MEANS */ data junk; do iexpt=1 to 10; do i = 1 to 50; y = RAND('Normal'); * here mu=0 as default; output; end; end; run; proc means data=junk; var y; class iexpt; output out=mysummary lclm=ylclm uclm=yuclm; run; proc print data=mysummary; run; data calc_cover_length; set mysummary; if iexpt NE .; icover = (ylclm <= 0 <= yuclm); yL = yuclm - ylclm; run; proc print data=calc_cover_length; run; /* option 2 - doing all the work in the DATA step */ data junk2; array x(50) x1-x50; tmult = quantile('T',.975,49); mu = 0; do iexpt=1 to 10; do i = 1 to 50; x[i] = RAND('Normal'); end; xbar = mean(of x1-x50); xvar = var(of x1-x50); xlcl = xbar - tmult*sqrt(xvar/50); xucl = xbar + tmult*sqrt(xvar/50); icover = (xlcl <= mu <= xucl); xl = xucl - xlcl; output; end; run; proc print data=junk2; var xbar xvar xlcl xucl icover xl; run;