options ls=95 nodate; data diets; /* ADDITIVE is either A or B (or none for control) */ /* AMOUNT is either 1 or 2 (or none for control) */ length trt $19.; input trt $ wtgain; cards; Control 4.1 Control 3.3 Control 3.1 Control 4.2 Control 3.6 Control 4.4 Control+level-1-A 5.2 Control+level-1-A 4.8 Control+level-1-A 4.5 Control+level-1-A 6.8 Control+level-1-A 5.5 Control+level-1-A 6.2 Control+level-2-A 6.3 Control+level-2-A 6.5 Control+level-2-A 7.2 Control+level-2-A 7.4 Control+level-2-A 7.8 Control+level-2-A 6.7 Control+level-1-B 6.5 Control+level-1-B 6.8 Control+level-1-B 7.3 Control+level-1-B 7.5 Control+level-1-B 6.9 Control+level-1-B 7 Control+level-2-B 9.5 Control+level-2-B 9.6 Control+level-2-B 9.2 Control+level-2-B 9.1 Control+level-2-B 9.8 Control+level-2-B 9.1 run; proc glm; class trt; /*watch ordering in CLASS LEVEL INFO in output*/ model wtgain=trt; contrast "theta_a:control - avg(others)" trt 4 -1 -1 -1 -1; contrast "theta_b:(A-B)_1 - (A-B)_2" trt 0 1 -1 -1 1; contrast "theta_c:A-B" trt 0 1 -1 1 -1; contrast "theta_c:1-2" trt 0 1 1 -1 -1; contrast "all 4" trt 4 -1 -1 -1 -1, trt 0 1 -1 -1 1, trt 0 1 -1 1 -1, trt 0 1 1 -1 -1; contrast "A-B at level 1" trt 0 1 0 -1 0; contrast "A-B at level 2" trt 0 0 1 0 -1; contrast "2 simple A-B effects" trt 0 1 0 -1 0, trt 0 0 1 0 -1; run;