X <- read.csv("mice.csv", header = TRUE) # replace by your own path here boxplot(X[,1] ~ X[,2]) lm1 <- lm(X[,1] ~ X[,2]) anova(lm1) plot(lm1$resid ~ X[,2]) # some residual diagnostics hist(lm1$resid) kruskal.test(X[,1] ~ X[,2]) ## example where KW works better: boxplot(Ozone ~ Month, data = airquality) kruskal.test(Ozone ~ Month, data = airquality) lm2 <- lm(Ozone ~ Month, data = airquality) anova(lm2) boxplot(log(Ozone) ~ Month, data = airquality) lm3 <- lm(log(Ozone) ~ Month, data = airquality) # this is a bit better than un-transformed model anova(lm3)