options ls=79 ps=200; data species; infile 'wheat.dat' firstobs=2; input ploidy species $ cross $ access plant tr1 tr2 tr3; proc mixed data = species; class ploidy species cross access plant; model tr1 = ploidy species(ploidy) / solution; random cross(ploidy*species) access(cross*ploidy*species); estimate 'grand mean' intercept 1 ploidy .25 .25 .25 .25 species(ploidy) .25 .05 .05 .05 .05 .05 .25 .0625 .0625 .0625 .0625; lsmeans ploidy species(ploidy); make 'lsmeans' out = lsmmix; /* look at random effects only for species sativa */ data sativa; set species; if ploidy = 6; proc mixed data = sativa; class cross access plant; model tr1 = ; random cross access(cross) / solution; estimate 'sativa' intercept 1; estimate 'cross ci2525' intercept 1 | cross 1 access(cross) .2 .2 .2 .2 .2; estimate 'cross ci3816' intercept 1 | cross 0 1 access(cross) 0 0 0 0 0 .2 .2 .2 .2 .2; estimate 'cross pi291990' intercept 1 | cross 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 .2 .2 .2 .2 .2; estimate 'cross pi291991' intercept 1 | cross 0 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .2 .2 .2 .2 .2; estimate 'access 1 ci2525' intercept 1 | cross 1 access(cross) 1; estimate 'access 2 ci2525' intercept 1 | cross 1 access(cross) 0 1; estimate 'access 3 ci2525' intercept 1 | cross 1 access(cross) 0 0 1; estimate 'access 4 ci2525' intercept 1 | cross 1 access(cross) 0 0 0 1; estimate 'access 5 ci2525' intercept 1 | cross 1 access(cross) 0 0 0 0 1; estimate 'access 1 ci3816' intercept 1 | cross 0 1 access(cross) 0 0 0 0 0 1; estimate 'access 2 ci3816' intercept 1 | cross 0 1 access(cross) 0 0 0 0 0 0 1; estimate 'access 3 ci3816' intercept 1 | cross 0 1 access(cross) 0 0 0 0 0 0 0 1; estimate 'access 4 ci3816' intercept 1 | cross 0 1 access(cross) 0 0 0 0 0 0 0 0 1; estimate 'access 5 ci3816' intercept 1 | cross 0 1 access(cross) 0 0 0 0 0 0 0 0 0 1; estimate 'access 1 pi291990' intercept 1 | cross 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 1; estimate 'access 2 pi291990' intercept 1 | cross 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 0 1; estimate 'access 3 pi291990' intercept 1 | cross 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 0 0 1; estimate 'access 4 pi291990' intercept 1 | cross 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 0 0 0 1; estimate 'access 5 pi291990' intercept 1 | cross 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1; estimate 'access 1 pi291991' intercept 1 | cross 0 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1; estimate 'access 2 pi291991' intercept 1 | cross 0 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1; estimate 'access 3 pi291991' intercept 1 | cross 0 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1; estimate 'access 4 pi291991' intercept 1 | cross 0 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1; estimate 'access 5 pi291991' intercept 1 | cross 0 0 0 1 access(cross) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1;