library(Sleuth3) qplot(Handicap, Score, data = case0601, geom = c("boxplot", "point")) avgs <- with(case0601, tapply(Score, Handicap, mean)) sds <- with(case0601, tapply(Score, Handicap, sd)) ns <- with(case0601, tapply(Score, Handicap, length)) # pooled sd sp <- sqrt(sum(sds^2*(ns-1))/sum(ns - 1)) df <- sum(ns) - length(ns) # linear combination of means to compare # crutches and wheelchair to hearing and amputee. # check order avgs C <- c(-1/2, 1/2, -1/2, 0, 1/2) # estimate (g <- sum(C * avgs)) # se (se_g <- sp * sqrt(sum(C^2/ns))) # t-stat g/se_g # p-value 2*(1- pt(abs(g/se_g), df)) # confidence interval g + c(-1, 1) * qt(0.975, df) * se_g # or get R to do the work library(multcomp) full_model <- lm(Score ~ Handicap - 1, data = case0601) # reusing C from before C_mat <- matrix(C, nrow = 1) comp <- glht(full_model, linfct = C_mat) summary(comp) confint(comp)