# code to read the spruce data # fit a two-sample t-test using lm() # then estimate variances for nested random effects spruce <- read.table('spruce.txt',header=T,as.is=T) # create factor variables for both trt and chamber spruce$trt.f <- as.factor(spruce$trt) spruce$chamber.f <- as.factor(spruce$chamber) # box plot boxplot(size~chamber.f,data=spruce) # dot plot in observation order plot(spruce$size) # fit a linear model, assuming one random error spruce.lm <- lm(size~trt.f, data=spruce) summary(spruce) # fit a linear mixed effects model, assuming two nested errors spruce.lme <- lme(size~trt.f,random=~+1|chamber.f,data=spruce) summary(spruce.lme)