dat <- hanks.sprinkler
# The line sprinkler is vertical between subplots 6 & 7
desplot(yield~subplot*row, dat, out1=block, out2=irr, cex=1,
num=gen, main="hanks.sprinkler")
xyplot(yield~subplot|block, dat, type=c('b'), group=gen,
layout=c(1,3), auto.key=TRUE,
panel=function(x,y,...){
panel.xyplot(x,y,...)
panel.abline(v=6.5, col='wheat')
})
# This is the model from the SAS documentation
# proc mixed;
# class block gen dir irr;
# model yield = gen|dir|irr@2;
# random block block*dir block*irr;
# repeated / type=toep(4) sub=block*gen r;
dat <- transform(dat, subf=factor(subplot),
irrf=factor(irr))
dat <- dat[order(dat$block, dat$gen, dat$subplot),]
# Re-produced with asreml
require('asreml')
m1 <- asreml(yield ~ gen + dir + irrf + gen:dir + gen:irrf + dir:irrf,
data=dat,
random= ~ block + block:dir + block:irrf,
rcov= ~ block:gen:corb(subf, k=3))
# convert asreml correlations to SAS covariances
summary(m1)$varcomp
.2850 * c(1, .02802, .005095, -.3246) # res var * (cor1, cor2, cor3)Run the code above in your browser using DataLab