options ls=75; data one; array lname{4} $9 ("vicland 1","vicland 2","clinton","branch"); array tname{4} $9 ("Check","Ceresan M","Panogen","Agrox"); do i=1 to 4; do block=1 to 4; do j = 1 to 4; input yield @; seedlot=lname{i}; treatment=tname{j}; output; end; end; end; cards; 42.9 53.8 49.5 44.4 41.6 58.5 53.8 41.8 28.9 43.9 40.7 28.3 30.8 46.3 39.4 34.7 53.3 57.6 59.8 64.1 69.6 69.6 65.8 57.4 45.4 42.4 41.4 44.1 35.1 51.9 45.4 51.6 62.3 63.4 64.5 63.6 58.5 50.4 46.1 56.1 44.6 45.0 62.6 52.7 50.3 46.7 50.3 51.8 75.4 70.3 68.8 71.6 65.6 67.3 65.3 69.4 54.0 57.6 45.6 56.6 52.7 58.5 51.0 47.4 ; run; proc means noprint nway; class treatment seedlot; var yield; output out=onemeans mean=yieldmean; run; symbol1 value=diamond h=2 i=join; symbol2 value=plus h=2 i=join; proc gplot; plot yieldmean*seedlot=treatment; plot yieldmean*treatment=seedlot; run; proc mixed data=one method=type3; class seedlot block treatment; model yield=treatment|seedlot/ddfm=satterth; random block block*seedlot; lsmeans treatment|seedlot/slice=(treatment seedlot); run;