/* Import RCBD Soil.xlsx into WORK.soil before running this code */ proc import out=work.soil datafile="/home/grego1/STAT 706/RCBD Soil.xlsx" dbms=xlsx; replace; run; proc print data=soil (obs=15); run; /* Here is an import of the file from a permanent SAS data */ libname stat706 'e:\stat 706'; run; /* data stat706.soil; set soil; run; */ data soil; set stat706.soil; run; proc print data=soil (obs=15); run; /* RCBD ignoring factorial structure for treatment */ proc glm data=soil order=data; class 'soil type'n 'trt combinations'n; model IRoR='soil type'n 'trt combinations'n; means 'trt combinations'n/tukey; run; /* RCBD including factorial structure for treatment */ proc glm data=soil order=data; class Nitrogen Base_Rate_Percentage soil_type; model IRoR=soil_type Nitrogen|Base_Rate_Percentage; means Nitrogen|Base_Rate_Percentage/tukey; run; /* PROC GLIMMIX has the SLICE option for studying effects for one factor within levels */ /* of the other factor. Not really necessary here, since the interaction is not */ /* significant */ proc mixed data=soil order=data; class Nitrogen 'Base Rate Percentage'n 'soil type'n; model IRoR='soil type'n Nitrogen|'Base Rate Percentage'n; lsmeans Nitrogen 'Base Rate Percentage'n/adjust=tukey; lsmeans Nitrogen*'Base Rate Percentage'n/slice=(Nitrogen 'Base Rate Percentage'n); run; *Proc glimmix's use of SLICE is more insightful; proc glimmix data=soil order=data; class Nitrogen 'Base Rate Percentage'n 'soil type'n; model IRoR='soil type'n Nitrogen|'Base Rate Percentage'n; lsmeans Nitrogen 'Base Rate Percentage'n/adjust=tukey; slice Nitrogen*'Base Rate Percentage'n / sliceby='Base Rate Percentage'n adjust=tukey cl; slice Nitrogen*'Base Rate Percentage'n / sliceby=Nitrogen adjust=tukey cl; run; run;