/* I 221 213 202 183 185 197 162 II 271 192 189 209 227 236 142 III 262 193 224 201 161 178 265 IV 192 253 248 278 232 267 289 */ options ls=75; data one; input gender $ age $2. @; do i=1 to 7; input y @@; gender1=(gender="w")-(gender="m"); age1=(age="jr")-(age="sr"); age1gender1=age1*gender1; output; end; cards; w jr . . . . . . 162 m jr 271 192 189 209 227 236 . w sr 262 193 224 201 161 178 265 m sr . . . . . . 289 ; run; proc glm; class age gender; *model y=gender|age/ss1 ss2 ss3; model y=age gender/solution; *lsmeans gender|age; lsmeans gender age/stderr; estimate "lsmean for young folks" intercept 2 age 2 0 gender 1 1/divisor=2; estimate "lsmean for older folks" intercept 2 age 0 2 gender 1 1/divisor=2; estimate "lsmean for men" intercept 2 age 1 1 gender 2 0/divisor=2; estimate "lsmean for women" intercept 2 age 1 1 gender 0 2/divisor=2; estimate "lsmean for young men" intercept 1 age 1 0 gender 1 0; estimate "lsmean for young women" intercept 1 age 1 0 gender 0 1; estimate "lsmean for old men" intercept 1 age 0 1 gender 1 0; estimate "lsmean for old women" intercept 1 age 0 1 gender 0 1; contrast "age effect" age 1 -1; estimate "age effect" age 1 -1; contrast "gender effect" gender 1 -1; means gender age; *means gender age gender*age; run; proc glm; class gender age; model y=gender|age/ss1 ss2 ss3; lsmeans gender*age; means gender*age; estimate "lsmean for young folks" intercept 2 age 2 0 gender 1 1 gender*age 1 0 1 0/divisor=2; estimate "lsmean for older folks" intercept 2 age 0 2 gender 1 1 gender*age 0 1 0 1/divisor=2; estimate "lsmean for men" intercept 2 age 1 1 gender 2 0 gender*age 1 1 0 0/divisor=2; estimate "lsmean for women" intercept 2 age 1 1 gender 0 2 gender*age 0 0 1 1/divisor=2; run; proc reg; model y=age1 gender1 ; run;