*********************************************** * MACRO: DESIGN2 * * GENERATES FRACTIONAL 2**K DESIGNS * ***********************************************; *options mprint mlogic; %window dwinn group=num #1 @4 'ENTER THE NUMBER OF FACTORS' @60 k1 8 attr=underline color=green required=yes group=num1 #3 @4 'ENTER THE NAME OF THE FIRST FACTOR' @60 fac1 8 attr=underline color=green required=yes group=num2 #4 @4 'ENTER THE NAME OF THE SECOND FACTOR' @60 fac2 8 attr=underline color=green required=yes group=num3 #5 @4 'ENTER THE NAME OF THE THIRD FACTOR' @60 fac3 8 attr=underline color=green required=yes group=num4 #6 @4 'ENTER THE NAME OF THE FOURTH FACTOR' @60 fac4 8 attr=underline color=green required=yes group=num5 #7 @4 'ENTER THE NAME OF THE FIFTH FACTOR' @60 fac5 8 attr=underline color=green required=yes group=num6 #8 @4 'ENTER THE NAME OF THE SIXTH FACTOR' @60 fac6 8 attr=underline color=green required=yes group=num7 #9 @4 'ENTER THE NAME OF THE SEVENTH FACTOR' @60 fac7 8 attr=underline color=green required=yes group=num8 #10 @4 'ENTER THE NAME OF THE EIGHTH FACTOR' @60 fac8 8 attr=underline color=green required=yes group=num9 #11 @4 'ENTER THE NAME OF THE NINTH FACTOR' @60 fac9 8 attr=underline color=green required=yes group=num10 #12 @4 'ENTER THE NAME OF THE TENTH FACTOR' @60 fac10 8 attr=underline color=green required=yes group=num11 #13 @4 'ENTER THE NAME OF THE ELEVENTH FACTOR' @60 fac11 8 attr=underline color=green required=yes group=num12 #14 @4 'ENTER THE NAME OF THE TWELFTH FACTOR' @60 fac12 8 attr=underline color=green required=yes group=desig1 #16 @4 'ENTER THE SIZE OF THE FRACTION (E.G. 8 FOR A 1/8TH FRACTION)' @70 size1 8 attr=underline color=green required=yes group=desig3 #18 @4 'ENTER THE NUMBER OF BLOCKS' @60 block1 8 attr=underline color=green required=yes group=desig4 #19 @4 'ENTER THE MAXIMUM SIZE INTERACTION' #20 @4 'TO DISPLAY IN THE ALIAS STRUCTURE' @60 alias1 8 attr=underline color=green required=yes group=desig5 #22 @4 'ENTER THE NAME OF THE SAS DATA SET TO STORE THE DESIGN' @60 dataset1 20 attr=underline color=green required=yes group=message #24 @4 'DO YOU WANT TO CONSTRUCT ANOTHER DESIGN? (Y/N)' @60 next1 6 attr=underline color=green required=yes group=error #26 @10 'YOU HAVE ENTERED AN INVALID VALUE.' #27 @10 'THE MAXIMUM NUMBER OF FACTORS IS 12.' #28 @10 'PLEASE HIT RETURN, THEN TRY AGAIN.'; %macro designs; * INPUT THE NUMBER OF FACTORS; %choice: %display dwinn.num; %let k=&k1; %let k1=; %if &k > 12 %then %goto err; * LOOP FOR ENTERING NAMES OF FACTORS; %do i=1 %to &k; %display dwinn.num&i; %let name&i=&&fac&i; %let fac&i=; %end; * CONSTRUCT THE DESIGN; %display dwinn.desig1; %let size=&size1; %let size1=; %display dwinn.desig3; %let bloc=&block1; %let block1=; %display dwinn.desig4; %let alia=&alias1; %let alias1=; %display dwinn.desig5; %let dataset=&dataset1; %let dataset1=; %macro names(name,number); %do n=1 %to &number; &&name&n %end; %mend names; * CREATE THE DESIGN; proc factex; factors %names(name,&k) / NLEV=2; model res=maximum; size fraction=&size; examine a(&alia) c; blocks nblocks=&bloc; output out=&dataset randomize novalran; run; proc print data=&dataset; title "DESIGN POINTS"; run; goptions reset=title; %display dwinn.message blank; %let nex=&next1; %let next1=; %if %upcase(&nex)=Y %then %goto choice; %goto finish; %err: %display dwinn.error; %goto choice; %finish: %mend designs; %designs;