/* 拉丁方设计 */
proc plan seed=37430;
factors r=4 ordered w=4 ordered / noprint;
/*factors语句指定行变量row和列变量col，各有四个水平，顺序排列，noprint表示不输出这部分结果，因为这只是中间过程。读者也可不加该选项，输出这部分结果*/
treatments treat=4 cyclic;
/*treatments语句指定处理因素，4个水平，按循环顺序排列。由于未指定循环形式，因此默认为1、2、3、4，循环增量默认为1，也就是{1234}、{2341}、{3412}等顺序*/
output out=latin44
r nvals=(1 2 3 4) random
w nvals=(1 2 3 4) random
treat cvals=('A' 'B' 'C' 'D') random;
/*output语句表示将设计结果输出到数据集latin44，并指定变量row和col均显示为1234的数值形式，随机排列；treat显示为ABCD的形式，随机排列*/
RUN;
proc sort data=latin44 out=latin44;
by r w;
/* proc sort过程将数据集latin44按行和列排序，并将排序后的结果输出到数据latin44 */
proc transpose data=latin44
out =lt44(drop=_NAME_);
by r;
var treat;
/* proc transpose过程主要作用是将原来竖排显示的数据变为行列相等的“方”形 */
proc print data=lt44 noobs;
run;




/* 尧敦方设计 */
proc plan seed=37430;
factors r=4 ordered w=3 ordered / noprint;
treatments treat=4 cyclic;
output out=latin44
r nvals=(1 2 3 4) random
w nvals=(1 2 3) random
treat cvals=('A' 'B' 'C' 'D') random;
RUN;
proc sort data=latin44 out=latin44;
by r w;
proc transpose data=latin44
out =lt44(drop=_NAME_);
by r;
var treat;
proc print data=lt44 noobs;
run;
