preserve. set printback=on. * SIMPLE AND COMPLEXE RANDON ASSIGNMENT IN EXPERIMENTAL DESIGNS Valentim R. Alferes, University of Coimbra (Portugal), 2009. * RandBlock.sps - Block Random Assignement. set printback=off. set ovars labels onumbers values tvars labels tnumbers values. set errors=none. data list list/nblock (f8.0) nunit(f8.0) ntreat(f8.0). * Enter number of blocks, the number of units per block, and the number of treatments (NOTE: The number of units per block must be equal or multiple of the number of treatments). begin data 8 6 3 end data. compute ncases=nblock*nunit. loop cases=1 to ncases. xsave outfile='%temp%\outf1'. end loop. get file='%temp%\outf1'. compute Block=mod(cases,nblock)+1. sort cases by block (A). compute Treatment=mod($casenum,ntreat)+1. set rng=mt mtindex=random. compute random=uniform(1). sort cases by block(a) random(a). compute id=$casenum. rank variables=id(a) by block/rank/print=no. variable labels rid"Unit". formats all(f8.0). oms/select tables/if commands=["summarize"] subtypes=["case processing summary"]/destination viewer=no. oms/select tables/if commands=["crosstabs"] subtypes=["case processing summary"]/destination viewer=no. summarize/tables=block rid treatment/format=validlist nocasenum nototal /title='Block Random Assignment \n Sorted by Block/Unit'/cells=none. sort cases by treatment(a) block(a) rid(a). summarize/tables=block rid treatment/format=validlist nocasenum nototal /title='Block Random Assignment \n Sorted by Treatment'/cells=none. crosstabs/tables=block by treatment/count round cell. set printback=on. COMMENT Simple Block Design: [Number de units per cell] = 1. COMMENT Generalized Block Design: [Number de units per cell] > 1. restore.