Вот некоторые данные, три группы обозначены как таковые с помощью группирующей переменной типа фактор.
n1 <- n2 <- n3 <- 4
df.test <- as.data.frame(list(
grouping = as.factor(c(rep(1,times=n1),rep(2,times=n2),rep(3,times=n3))), #arbitrary factor
data = c(rnorm(n=n1,mean=1),rnorm(n=n2,mean=10),rnorm(n=n3,mean=11)))) #random data
head(df.test)
# grouping data
# 1 1 2.1026786
# 2 1 0.4464325
# 3 1 -1.0131310
# 4 1 1.6502438
# 5 2 10.8733848
# 6 2 9.3680943
Чтобы проверить, значительно ли отличаются значения групп для групп 1, 2 и 3:
anova <- aov(df.test$data ~ df.test$grouping)
summary(anova)
# Df Sum Sq Mean Sq F value
# df.test$grouping 2 280.93 140.47 111.4
# Residuals 9 11.34 1.26
# Pr(>F)
# df.test$grouping 4.47e-07 ***
# Residuals
# ---
# Signif. codes:
# 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
И вы можете запустить тест Тьюки:
TukeyHSD(anova)
# Tukey multiple comparisons of means
# 95% family-wise confidence level
#
# Fit: aov(formula = df.test$data ~ df.test$grouping)
#
# $`df.test$grouping`
# diff lwr upr p adj
# 2-1 9.9632077 7.746675 12.179740 0.0000014
# 3-1 10.5404363 8.323904 12.756969 0.0000009
# 3-2 0.5772286 -1.639304 2.793761 0.7542212