2 - ANOVA
library(multcompView)
library(emmeans)
mod=aov(FDN~Metodo, data = FDN)
summary(mod)
Df Sum Sq Mean Sq F value Pr(>F)
Metodo 2 8600 4300 12.02 3.02e-05 ***
Residuals 74 26472 358
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
medias = emmeans(mod, ~ Metodo)
summary(medias)
Metodo emmean SE df lower.CL upper.CL
Ankom 801 4.13 74 793 810
Tecnal_1 814 3.57 74 807 821
Tecnal_2 828 3.57 74 821 835
Confidence level used: 0.95
tukey = TukeyHSD(mod)
print(tukey)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = FDN ~ Metodo, data = FDN)
$Metodo
diff lwr upr p adj
Tecnal_1-Ankom 12.27726 -0.7815932 25.33612 0.0697502
Tecnal_2-Ankom 26.53833 13.4794782 39.59719 0.0000189
Tecnal_2-Tecnal_1 14.26107 2.1709209 26.35122 0.0167054
letras = multcompLetters4(mod, tukey)
print(letras)
$Metodo
Tecnal_2 Tecnal_1 Ankom
"a" "b" "b"
library(dplyr)
FDN_plot = FDN %>% group_by(Metodo) %>%
summarise(mean = mean(FDN, na.rm = TRUE),sd = sd(FDN, na.rm = TRUE),.groups = "drop")
FDN_plot
# letras para cada método
letras_FDN = data.frame(Metodo = c("Ankom", "Tecnal_1", "Tecnal_2"), letra = c("a", "a", "b"))
# adicionar as letras ao data
FDN_plot = FDN_plot %>% left_join(letras_FDN, by = "Metodo")
FDN_plot
cores = c("Ankom"="#E76F51","Tecnal_1"="#457B9D","Tecnal_2"="#2A9D8F")
library(ggplot2)
p1 = ggplot(FDN_plot,aes(x = Metodo, y = mean, fill=Metodo)) +
geom_col(width = 0.75) + geom_errorbar(aes(ymin = mean - sd, ymax = mean + sd), width = 0.2) +
geom_text(aes(y = mean + sd + 0.05*max(mean, na.rm = TRUE), label = letra), size = 4) +
scale_fill_manual(values = cores) +
labs(x = NULL, y = expression("Mean NDF (g/kg)")) +
annotate("text", x = Inf, y = Inf, label = "P = <0.01", hjust = 1.1, vjust = 1.5, size = 6, fontface = "bold") +
theme_classic() + theme(legend.position = "none", axis.text.x = element_text(angle = 17, hjust = 0.8, size = 11), plot.title = element_text(face = "bold")) + coord_cartesian(ylim = c(0, 1000))
p1

LS0tDQp0aXRsZTogIlRlc3RlIC0gTWV0b2RvcyBkZSBkZXRlcm1pbmHDp8OjbyBkZSBGRE4iDQphdXRob3I6ICJWYWduZXIgT3ZhbmkiDQpkYXRlOiAiMDkvMDMvMjAyNiINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZGVwdGg6IDINCiAgICB0aGVtZTogdW5pdGVkDQogIHBkZl9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZGVwdGg6ICcyJw0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19kZXB0aDogJzInDQogICAgZGZfcHJpbnQ6IHBhZ2VkDQotLS0NCg0KKioqDQoqKioNCiMgKioxIC0gREFUQSoqDQoqKioNCioqKg0KDQpgYGB7cn0NCkZETj1yZWFkLmNzdigiQzovVXNlcnMvU2Ftc3VuZy9PbmVEcml2ZS9Eb2N1bWVudG9zLzEgLSBQw7NzRG9jLzIgLSBGQVBFU1AgLSBTaWx2aXBhc3RvcmlsL1Jlc3BvbnNhYmlsaWRhZGVzL0ZETi9GRE4uY3N2IikNCkZETiRNZXRvZG89YXMuZmFjdG9yKEZETiRNZXRvZG8pDQpzdHIoRkROKQ0KVmlldyhGRE4pDQpgYGANCioqKg0KKioqDQojICoqMiAtIEFOT1ZBKioNCioqKg0KKioqDQoNCmBgYHtyfQ0KbGlicmFyeShtdWx0Y29tcFZpZXcpDQpsaWJyYXJ5KGVtbWVhbnMpDQoNCm1vZD1hb3YoRkROfk1ldG9kbywgZGF0YSA9IEZETikNCnN1bW1hcnkobW9kKQ0KbWVkaWFzID0gZW1tZWFucyhtb2QsIH4gTWV0b2RvKQ0Kc3VtbWFyeShtZWRpYXMpDQp0dWtleSA9IFR1a2V5SFNEKG1vZCkNCnByaW50KHR1a2V5KQ0KbGV0cmFzID0gbXVsdGNvbXBMZXR0ZXJzNChtb2QsIHR1a2V5KQ0KcHJpbnQobGV0cmFzKQ0KDQpsaWJyYXJ5KGRwbHlyKQ0KRkROX3Bsb3QgPSBGRE4gJT4lIGdyb3VwX2J5KE1ldG9kbykgJT4lDQogIHN1bW1hcmlzZShtZWFuID0gbWVhbihGRE4sIG5hLnJtID0gVFJVRSksc2QgPSBzZChGRE4sIG5hLnJtID0gVFJVRSksLmdyb3VwcyA9ICJkcm9wIikNCkZETl9wbG90DQoNCiMgbGV0cmFzIHBhcmEgY2FkYSBtw6l0b2RvDQpsZXRyYXNfRkROID0gZGF0YS5mcmFtZShNZXRvZG8gPSBjKCJBbmtvbSIsICJUZWNuYWxfMSIsICJUZWNuYWxfMiIpLCBsZXRyYSA9IGMoImEiLCAiYSIsICJiIikpDQoNCiMgYWRpY2lvbmFyIGFzIGxldHJhcyBhbyBkYXRhDQpGRE5fcGxvdCA9IEZETl9wbG90ICU+JSBsZWZ0X2pvaW4obGV0cmFzX0ZETiwgYnkgPSAiTWV0b2RvIikNCkZETl9wbG90DQpgYGANCg0KYGBge3J9DQpjb3JlcyA9IGMoIkFua29tIj0iI0U3NkY1MSIsIlRlY25hbF8xIj0iIzQ1N0I5RCIsIlRlY25hbF8yIj0iIzJBOUQ4RiIpDQoNCmxpYnJhcnkoZ2dwbG90MikNCnAxID0gZ2dwbG90KEZETl9wbG90LGFlcyh4ID0gTWV0b2RvLCB5ID0gbWVhbiwgZmlsbD1NZXRvZG8pKSArDQogIGdlb21fY29sKHdpZHRoID0gMC43NSkgKyBnZW9tX2Vycm9yYmFyKGFlcyh5bWluID0gbWVhbiAtIHNkLCB5bWF4ID0gbWVhbiArIHNkKSwgd2lkdGggPSAwLjIpICsNCiAgZ2VvbV90ZXh0KGFlcyh5ID0gbWVhbiArIHNkICsgMC4wNSptYXgobWVhbiwgbmEucm0gPSBUUlVFKSwgbGFiZWwgPSBsZXRyYSksIHNpemUgPSA0KSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGNvcmVzKSArDQogIGxhYnMoeCA9IE5VTEwsIHkgPSBleHByZXNzaW9uKCJNZWFuIE5ERiAoZy9rZykiKSkgKw0KICBhbm5vdGF0ZSgidGV4dCIsIHggPSBJbmYsIHkgPSBJbmYsIGxhYmVsID0gIlAgPSA8MC4wMSIsIGhqdXN0ID0gMS4xLCB2anVzdCA9IDEuNSwgc2l6ZSA9IDYsIGZvbnRmYWNlID0gImJvbGQiKSArDQogIHRoZW1lX2NsYXNzaWMoKSArIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIiwgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSAxNywgaGp1c3QgPSAwLjgsIHNpemUgPSAxMSksIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoZmFjZSA9ICJib2xkIikpICsgY29vcmRfY2FydGVzaWFuKHlsaW0gPSBjKDAsIDEwMDApKQ0KcDENCg0KYGBgDQoNCg0K