/* Milliken and Johnson Example 13.1 */
options linesize=80 pagesize=50;
data a;
   infile 'empty.dat' firstobs=2;
   input T B y;
proc glm;
   class T B;
   model y = T B T*B / ss1 ss2 ss3 ss4 e4 solution;
   lsmeans T*B / stderr pdiff;
   contrast 'T1 vs. T2 ave over B1,B3' T 1 -1 0 T*B .5 .5 -.5 0 -.5 0 0;
   contrast 'T2 vs. T3 ave over B1,B2' T 0 1 -1 T*B 0 0 .5 .5 0 -.5 -.5;
   contrast 'T1 vs. T3 at B1' T 1 0 -1 T*B 1 0 0 0 0 -1 0;
   contrast 'B1 vs. B2 ave over T2,T3' B 1 -1 0 T*B 0 0 .5 -.5 0 .5 -.5;
   contrast 'B1 vs. B3 ave over T1,T2' B 1 0 -1 T*B .5 -.5 .5 0 -.5;
   contrast 'B2 vs. B3 at T2' B 0 1 -1 T*B 0 0 0 1 -1;
data b; set a;
   BB = 4 - B;
   TT = 4 - T;
proc glm;
   class TT BB;
   model y = TT BB TT*BB / ss1 ss2 ss3 ss4 e4 solution;
