1

我无法为我的结果生成紧凑型字母显示。我已经运行了一个方差分析,然后是 Tukey 的 HSD 来为每对生成 p 值,但我不知道如何(或者是否可能?)为这些 p 值分配字母以显示哪些对彼此重要。

csa.anova<-aov(rate~temp*light,data=csa.per.chl) summary(csa.anova) TukeyHSD(csa.anova)

这运行了我需要的测试,但我不知道如何为每个 p 值分配字母以显示哪些对是重要的。

4

3 回答 3

2

在此处查找更多详细信息。

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 )

于 2021-06-03T07:33:08.597 回答
1

您需要先安装multcomp软件包。它可以计算 Tukey HSD 测试并返回一个具有summaryplot方法的对象。该软件包还有一个功能 ( 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" 
于 2019-09-01T22:45:57.790 回答
0

我无法使这段代码工作:

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”

于 2020-12-22T16:48:11.927 回答