我无法为我的结果生成紧凑型字母显示。我已经运行了一个方差分析,然后是 Tukey 的 HSD 来为每对生成 p 值,但我不知道如何(或者是否可能?)为这些 p 值分配字母以显示哪些对彼此重要。
csa.anova<-aov(rate~temp*light,data=csa.per.chl)
summary(csa.anova)
TukeyHSD(csa.anova)
这运行了我需要的测试,但我不知道如何为每个 p 值分配字母以显示哪些对是重要的。
mod <- lm(Sepal.Width ~ Species, data = iris)
mod_means_contr <- emmeans::emmeans(object = mod,
pairwise ~ "Species",
adjust = "tukey")
mod_means <- multcomp::cld(object = mod_means_contr$emmeans,
Letters = letters)
library(ggplot2)
ggplot(data = mod_means,
aes(x = Species, y = emmean)) +
geom_errorbar(aes(ymin = lower.CL,
ymax = upper.CL),
width = 0.2) +
geom_point() +
geom_text(aes(label = gsub(" ", "", .group)),
position = position_nudge(x = 0.2)) +
labs(caption = "Means followed by a common letter are\nnot significantly different according to the Tukey-test")
由reprex 包于 2021-06-03 创建 (v2.0.0 )
您需要先安装multcomp
软件包。它可以计算 Tukey HSD 测试并返回一个具有summary
和plot
方法的对象。该软件包还有一个功能 ( cld
) 用于打印“紧凑型字母显示”。作为一个例子,我们可以使用 R 自带的 iris 数据集:
library(multcomp)
data(iris)
iris.aov <- aov(Petal.Length~Species, iris)
iris.tukey <- glht(iris.aov, linfct=mcp(Species="Tukey"))
cld(iris.tukey)
# setosa versicolor virginica
# "a" "b" "c"
我无法使这段代码工作:
data("iris")
iris.aov<-aov(Petal.Length~Species,iris)
iris.tukey<-glht(iris.aov,linfct=mcp(Species="Tukey"))
这是触发的错误:
glht (iris.aov, linfct = mcp(Species = "Tukey")) 中的错误:找不到函数“glht”