%let overall=.05;
data hoch;
input raw_p;
datalines;
.147
.005
.002
;
run;
/*******************************************************/
/** shouldn't need to alter anything below this line! **/
/*******************************************************/
proc sort data=hoch; by descending raw_p; run;
data hoch; set hoch nobs=N_of_comparisons; by descending raw_p;
* initialize..;
if _N_=1 then do;
rej = 0;
revRank=N_of_comparisons;
end;
retain critical_value rej revRank;
if rej=0 then do;
critical_value = &overall/(N_of_comparisons - revRank + 1);
if raw_p <= critical_value then rej=1;
end;
/* else: don't compute critical value for subsequent significant entries */
else if rej=1 then critical_value = .;
revRank=revRank-1;
run;
proc format; value rejfmt 1='yes' 0='no'; run;
TITLE "Overall alpha=&overall";
proc print data=hoch;
var raw_p critical_value rej;
format rej rejfmt.;
format raw_p critical_value 5.4;
run;
/*******************************************************/
/*******************************************************/
/** Programmer: Karen Spritzer, UCLA, 3/12/14 ***/
/*******************************************************/