cldList() 函数在添加紧凑字母显示时表现异常

cldList() function behaves weirdly when adding compact letter display

我问了一个问题 但现在面临另一个问题

在 运行 cldList()rcompanion 之后,它给了我一个 table 显示每个组的紧凑字母显示,但是,有些组不显示任何字母尽管与其他组没有显着差异。

数据太大,正在上传 here

这是一个错误还是我做错了什么。

我用的是这个代码

library(FSA)
library(multcompView)
library(rcompanion)
library(ggplot2)
library(ggpubr)
library(tidyr)

raw_df <- read.csv("raw_data.csv")


#After performing Kruskal-Wallis H test, I found significant groups and performed the post hoc test using dunnTest() using the code below

bells <- dunnTest(Group ~ as.factor(Color_Score), method = "bh", data = raw_df)

#I save the P values into a separate variable
piano <- bells$`res`

#After the Dunn Test, I tried to get the compact letter displays.

flute <- cldList(P.adj ~ Comparison, data = piano, threshold = 0.05) 

#This is where the problem starts, overall, I have 40 groups to compare but would only return letters for 38 groups

#I tried plotting the boxplot and adding the compact letter using the code below

ggboxplot(raw_df, x = "Group", y = "Color_Score", 
          combine = FALSE, 
          x.text.angle = 360,
          orientation = "vertical",
          ylab = "Measurement (cm)",
          xlab = "Group", 
          color = "Group",
          fill = "Group", 
          notch = FALSE,
          ggtheme = theme_gray()) + 
            font("xy.text", size = 7, color = "black") + 
            theme(legend.position = "None", 
             axis.text.x =element_text(color = "black")) +  
            color of the y-axis (Measurement) tick labels
            geom_text(data  = flute, 
                      aes(x = Group, y = 12, angle = 90,
                      label = Letter),
                      position = position_nudge(x = 0.1),
                      hjust = 0,
                      color = "red")

有人经历过吗?我试图搜索但找不到任何答案。

编辑:

好的,所以我使用 {copypasta} 包将数据包含在代码中以便于重现(通过 {reprex})。

数据

raw_df  <- tibble::tribble(
  ~Group, ~DAY, ~REPLICATE, ~Color_Score,
    "S1",   7L,         1L,            4,
    "S1",   7L,         2L,          1.7,
    "S1",   7L,         3L,          1.5,
    "S1",   7L,         4L,            2,
    "S2",   7L,         1L,          1.2,
    "S2",   7L,         2L,          1.6,
    "S2",   7L,         3L,          1.8,
    "S2",   7L,         4L,          2.3,
    "S3",   7L,         1L,          1.6,
    "S3",   7L,         2L,          1.6,
    "S3",   7L,         3L,            2,
    "S3",   7L,         4L,          0.9,
    "S4",   7L,         1L,          1.2,
    "S4",   7L,         2L,            2,
    "S4",   7L,         3L,          1.2,
    "S4",   7L,         4L,            2,
    "S5",   7L,         1L,          1.7,
    "S5",   7L,         2L,          1.2,
    "S5",   7L,         3L,          1.5,
    "S5",   7L,         4L,          1.3,
    "S6",   7L,         1L,          1.6,
    "S6",   7L,         2L,          0.8,
    "S6",   7L,         3L,            0,
    "S6",   7L,         4L,            0,
    "S7",   7L,         1L,          1.9,
    "S7",   7L,         2L,            2,
    "S7",   7L,         3L,          2.4,
    "S7",   7L,         4L,          2.6,
    "S8",   7L,         1L,          2.9,
    "S8",   7L,         2L,            3,
    "S8",   7L,         3L,          2.4,
    "S8",   7L,         4L,            2,
    "S9",   7L,         1L,          1.1,
    "S9",   7L,         2L,          1.2,
    "S9",   7L,         3L,          1.2,
    "S9",   7L,         4L,          1.8,
   "S10",   7L,         1L,          2.8,
   "S10",   7L,         2L,          1.7,
   "S10",   7L,         3L,          2.3,
   "S10",   7L,         4L,          2.6,
   "S11",   7L,         1L,          1.5,
   "S11",   7L,         2L,          2.4,
   "S11",   7L,         3L,          1.6,
   "S11",   7L,         4L,          1.3,
    "I1",   7L,         1L,          2.6,
    "I1",   7L,         2L,          2.2,
    "I1",   7L,         3L,          2.8,
    "I1",   7L,         4L,          2.6,
    "I2",   7L,         1L,          2.3,
    "I2",   7L,         2L,          2.4,
    "I2",   7L,         3L,          2.4,
    "I2",   7L,         4L,            2,
    "I3",   7L,         1L,          4.3,
    "I3",   7L,         2L,          1.8,
    "I3",   7L,         3L,          1.8,
    "I3",   7L,         4L,          2.9,
    "I4",   7L,         1L,          2.8,
    "I4",   7L,         2L,          2.7,
    "I4",   7L,         3L,          1.6,
    "I4",   7L,         4L,          1.8,
    "I5",   7L,         1L,          2.5,
    "I5",   7L,         2L,          2.4,
    "I5",   7L,         3L,          1.9,
    "I5",   7L,         4L,          2.7,
    "I6",   7L,         1L,          2.6,
    "I6",   7L,         2L,          2.5,
    "I6",   7L,         3L,          3.1,
    "I6",   7L,         4L,          2.2,
    "I7",   7L,         1L,          2.5,
    "I7",   7L,         2L,          1.7,
    "I7",   7L,         3L,          1.8,
    "I7",   7L,         4L,          2.5,
    "I8",   7L,         1L,            2,
    "I8",   7L,         2L,          2.4,
    "I8",   7L,         3L,            1,
    "I8",   7L,         4L,          1.6,
    "I9",   7L,         1L,          2.2,
    "I9",   7L,         2L,          1.4,
    "I9",   7L,         3L,          2.3,
    "I9",   7L,         4L,          1.8,
   "I10",   7L,         1L,          1.8,
   "I10",   7L,         2L,          2.6,
   "I10",   7L,         3L,          2.1,
   "I10",   7L,         4L,          2.7,
    "C1",   7L,         1L,          1.5,
    "C1",   7L,         2L,          2.3,
    "C1",   7L,         3L,          2.2,
    "C1",   7L,         4L,            3,
    "C2",   7L,         1L,          1.5,
    "C2",   7L,         2L,          1.6,
    "C2",   7L,         3L,          2.8,
    "C2",   7L,         4L,          1.2,
    "C3",   7L,         1L,          2.4,
    "C3",   7L,         2L,          2.2,
    "C3",   7L,         3L,          2.1,
    "C3",   7L,         4L,          3.4,
    "C4",   7L,         1L,          2.5,
    "C4",   7L,         2L,          2.7,
    "C4",   7L,         3L,          1.8,
    "C4",   7L,         4L,          3.6,
    "C5",   7L,         1L,          0.9,
    "C5",   7L,         2L,          2.1,
    "C5",   7L,         3L,          1.2,
    "C5",   7L,         4L,          2.1,
    "C6",   7L,         1L,          2.6,
    "C6",   7L,         2L,          1.8,
    "C6",   7L,         3L,          1.9,
    "C6",   7L,         4L,          2.5,
    "C7",   7L,         1L,          1.7,
    "C7",   7L,         2L,          0.4,
    "C7",   7L,         3L,          1.8,
    "C7",   7L,         4L,            1,
    "C8",   7L,         1L,          0.4,
    "C8",   7L,         2L,            1,
    "C8",   7L,         3L,          0.4,
    "C8",   7L,         4L,          1.4,
    "C9",   7L,         1L,          0.9,
    "C9",   7L,         2L,          1.1,
    "C9",   7L,         3L,          0.8,
    "C9",   7L,         4L,          1.6,
   "C10",   7L,         1L,          2.1,
   "C10",   7L,         2L,          1.5,
   "C10",   7L,         3L,          1.9,
   "C10",   7L,         4L,          1.7,
    "T1",   7L,         1L,          0.8,
    "T1",   7L,         2L,          1.2,
    "T1",   7L,         3L,          1.5,
    "T1",   7L,         4L,          1.3,
    "T2",   7L,         1L,          1.9,
    "T2",   7L,         2L,          2.4,
    "T2",   7L,         3L,          2.2,
    "T2",   7L,         4L,            2,
    "T3",   7L,         1L,          1.9,
    "T3",   7L,         2L,          1.8,
    "T3",   7L,         3L,            2,
    "T3",   7L,         4L,          1.8,
    "T4",   7L,         1L,          1.5,
    "T4",   7L,         2L,          1.3,
    "T4",   7L,         3L,          1.9,
    "T4",   7L,         4L,          1.7,
    "T5",   7L,         1L,          2.9,
    "T5",   7L,         2L,          1.8,
    "T5",   7L,         3L,          1.8,
    "T5",   7L,         4L,          2.3,
    "T6",   7L,         1L,          1.8,
    "T6",   7L,         2L,          2.1,
    "T6",   7L,         3L,          2.9,
    "T6",   7L,         4L,          2.3,
    "T7",   7L,         1L,          0.3,
    "T7",   7L,         2L,          0.2,
    "T7",   7L,         3L,            0,
    "T7",   7L,         4L,          0.5,
    "T8",   7L,         1L,          2.6,
    "T8",   7L,         2L,          4.6,
    "T8",   7L,         3L,          1.4,
    "T8",   7L,         4L,          1.7,
    "IR",   7L,         1L,          2.4,
    "IR",   7L,         2L,          1.6,
    "IR",   7L,         3L,          1.6,
    "IR",   7L,         4L,          2.4,
  "CTRL",   7L,         1L,            0,
  "CTRL",   7L,         2L,            0,
  "CTRL",   7L,         3L,            0,
  "CTRL",   7L,         4L,            0,
    "S1",   7L,         1L,          1.5,
    "S1",   7L,         2L,          1.5,
    "S1",   7L,         3L,          1.6,
    "S1",   7L,         4L,          0.9,
    "S2",   7L,         1L,          1.2,
    "S2",   7L,         2L,          1.6,
    "S2",   7L,         3L,          1.4,
    "S2",   7L,         4L,          2.9,
    "S3",   7L,         1L,          1.9,
    "S3",   7L,         2L,          1.3,
    "S3",   7L,         3L,            2,
    "S3",   7L,         4L,          2.5,
    "S4",   7L,         1L,          1.8,
    "S4",   7L,         2L,          0.4,
    "S4",   7L,         3L,            2,
    "S4",   7L,         4L,          2.4,
    "S5",   7L,         1L,          0.8,
    "S5",   7L,         2L,          2.2,
    "S5",   7L,         3L,          1.5,
    "S5",   7L,         4L,          0.5,
    "S6",   7L,         1L,          1.5,
    "S6",   7L,         2L,          1.8,
    "S6",   7L,         3L,          1.7,
    "S6",   7L,         4L,          1.4,
    "S7",   7L,         1L,            2,
    "S7",   7L,         2L,          1.4,
    "S7",   7L,         3L,          2.1,
    "S7",   7L,         4L,          1.2,
    "S8",   7L,         1L,          2.4,
    "S8",   7L,         2L,          1.7,
    "S8",   7L,         3L,          1.4,
    "S8",   7L,         4L,          1.7,
    "S9",   7L,         1L,            3,
    "S9",   7L,         2L,          2.7,
    "S9",   7L,         3L,          3.6,
    "S9",   7L,         4L,          2.8,
   "S10",   7L,         1L,          1.9,
   "S10",   7L,         2L,          1.2,
   "S10",   7L,         3L,          1.2,
   "S10",   7L,         4L,          2.3,
   "S11",   7L,         1L,          1.9,
   "S11",   7L,         2L,          1.5,
   "S11",   7L,         3L,            2,
   "S11",   7L,         4L,          1.7,
    "I1",   7L,         1L,          1.9,
    "I1",   7L,         2L,          1.7,
    "I1",   7L,         3L,          3.5,
    "I1",   7L,         4L,          1.8,
    "I2",   7L,         1L,          0.6,
    "I2",   7L,         2L,          0.8,
    "I2",   7L,         3L,          2.7,
    "I2",   7L,         4L,          1.4,
    "I3",   7L,         1L,          2.7,
    "I3",   7L,         2L,          1.4,
    "I3",   7L,         3L,          2.3,
    "I3",   7L,         4L,          2.4,
    "I4",   7L,         1L,          1.9,
    "I4",   7L,         2L,          2.3,
    "I4",   7L,         3L,          2.7,
    "I4",   7L,         4L,          2.2,
    "I5",   7L,         1L,          1.3,
    "I5",   7L,         2L,          1.7,
    "I5",   7L,         3L,            2,
    "I5",   7L,         4L,          1.5,
    "I6",   7L,         1L,          2.5,
    "I6",   7L,         2L,          2.1,
    "I6",   7L,         3L,          1.3,
    "I6",   7L,         4L,          2.7,
    "I7",   7L,         1L,            0,
    "I7",   7L,         2L,          1.8,
    "I7",   7L,         3L,          2.6,
    "I7",   7L,         4L,          1.8,
    "I8",   7L,         1L,          1.9,
    "I8",   7L,         2L,          3.2,
    "I8",   7L,         3L,          2.5,
    "I8",   7L,         4L,          2.7,
    "I9",   7L,         1L,          2.2,
    "I9",   7L,         2L,          2.7,
    "I9",   7L,         3L,          1.9,
    "I9",   7L,         4L,          2.3,
   "I10",   7L,         1L,          1.9,
   "I10",   7L,         2L,          2.5,
   "I10",   7L,         3L,          1.8,
   "I10",   7L,         4L,          2.8,
    "C1",   7L,         1L,          1.5,
    "C1",   7L,         2L,          2.5,
    "C1",   7L,         3L,          1.5,
    "C1",   7L,         4L,          2.4,
    "C2",   7L,         1L,          2.5,
    "C2",   7L,         2L,          1.7,
    "C2",   7L,         3L,          1.2,
    "C2",   7L,         4L,          2.6,
    "C3",   7L,         1L,          1.9,
    "C3",   7L,         2L,          2.7,
    "C3",   7L,         3L,          2.2,
    "C3",   7L,         4L,          1.5,
    "C4",   7L,         1L,          2.7,
    "C4",   7L,         2L,          1.8,
    "C4",   7L,         3L,          1.9,
    "C4",   7L,         4L,          2.6,
    "C5",   7L,         1L,          2.4,
    "C5",   7L,         2L,          1.1,
    "C5",   7L,         3L,          1.6,
    "C5",   7L,         4L,          0.9,
    "C6",   7L,         1L,          2.9,
    "C6",   7L,         2L,          1.7,
    "C6",   7L,         3L,          3.5,
    "C6",   7L,         4L,          1.9,
    "C7",   7L,         1L,            2,
    "C7",   7L,         2L,          1.5,
    "C7",   7L,         3L,          1.4,
    "C7",   7L,         4L,          1.1,
    "C8",   7L,         1L,          2.1,
    "C8",   7L,         2L,          2.2,
    "C8",   7L,         3L,          2.9,
    "C8",   7L,         4L,          1.5,
    "C9",   7L,         1L,          1.5,
    "C9",   7L,         2L,          1.8,
    "C9",   7L,         3L,          2.1,
    "C9",   7L,         4L,          1.4,
   "C10",   7L,         1L,          2.1,
   "C10",   7L,         2L,          1.5,
   "C10",   7L,         3L,          2.3,
   "C10",   7L,         4L,          1.9,
    "T1",   7L,         1L,          3.2,
    "T1",   7L,         2L,            2,
    "T1",   7L,         3L,          1.6,
    "T1",   7L,         4L,          4.2,
    "T2",   7L,         1L,          1.8,
    "T2",   7L,         2L,          2.7,
    "T2",   7L,         3L,          0.8,
    "T2",   7L,         4L,          1.5,
    "T3",   7L,         1L,            0,
    "T3",   7L,         2L,          2.2,
    "T3",   7L,         3L,          2.7,
    "T3",   7L,         4L,          0.5,
    "T4",   7L,         1L,          1.5,
    "T4",   7L,         2L,          2.3,
    "T4",   7L,         3L,            2,
    "T4",   7L,         4L,          0.7,
    "T5",   7L,         1L,          2.5,
    "T5",   7L,         2L,          2.3,
    "T5",   7L,         3L,          1.7,
    "T5",   7L,         4L,          1.3,
    "T6",   7L,         1L,          0.9,
    "T6",   7L,         2L,          1.4,
    "T6",   7L,         3L,          1.2,
    "T6",   7L,         4L,          0.9,
    "T7",   7L,         1L,          1.6,
    "T7",   7L,         2L,          1.3,
    "T7",   7L,         3L,          2.6,
    "T7",   7L,         4L,          3.1,
    "T8",   7L,         1L,          3.7,
    "T8",   7L,         2L,          1.1,
    "T8",   7L,         3L,            2,
    "T8",   7L,         4L,          2.7,
    "IR",   7L,         1L,          2.9,
    "IR",   7L,         2L,          1.6,
    "IR",   7L,         3L,          2.2,
    "IR",   7L,         4L,          2.4,
  "CTRL",   7L,         1L,            0,
  "CTRL",   7L,         2L,            0,
  "CTRL",   7L,         3L,            0,
  "CTRL",   7L,         4L,            0
  )

代码

library(FSA)
library(multcompView)
library(rcompanion)
library(ggplot2)
library(ggpubr)
library(tidyr)

library(tidyverse)
library(emmeans)
library(multcomp)
library(multcompView)

raw_df <- raw_df %>%
  mutate(Group = as.factor(Group))

n_distinct(raw_df$Group)
#> [1] 41

raw_dfGroup 列中有 41 个不同的组。

bells <-
  FSA::dunnTest(Color_Score ~ Group,
                method = "bh",
                data = raw_df)

bells$res$Comparison %>% 
  str_split(string = ., pattern = " - ") %>%
  unlist() %>% 
  n_distinct()
#> [1] 41

dunnTest()之后bells$resComparison列(-的左侧或右侧)仍有41个不同的组出现。

flute <-
  cldList(P.adj ~ Comparison,
          data = bells$res,
          threshold = 0.05) 

n_distinct(flute$Group)
#> [1] 38

突然间,在 cldList() 之后只剩下 38 个不同的组。名称中带有 10 的所有组均已丢失。因此,我怀疑它会以某种方式与功能有关,例如S1S10 在同一组。然而,我给这些组起了完全不同的名字,这仍然发生了。我很困惑,根本不知道如何解决这个问题。这与箱线图本身无关,因此该线程的名称具有误导性。您可以使用此可重现代码联系 cldList() 函数的作者。

替代代码

为了调试,我尝试了另一种方法,这种方法有效,但也给出了非常不同的 p 值。

mod <- lm(Color_Score ~ Group, raw_df)
new_bells <- emmeans(mod, specs = "Group")
new_flute <- cld(
  object = new_bells,
  Letters = letters,
  adjust = "bonferroni",
  alpha = 0.05
)

ggboxplot(
  data = raw_df,
  x = "Group",
  y = "Color_Score",
  combine = FALSE,
  x.text.angle = 360,
  orientation = "vertical",
  ylab = "Measurement (cm)",
  xlab = "Group",
  # color = "Group",
  fill = "Group",
  notch = FALSE,
  ggtheme = theme_bw()
) +
  font("xy.text", size = 7, color = "black") +
  theme(legend.position = "None",
        axis.text.x = element_text(
          color = "black",
          angle = 90,
          vjust = 0.5)) +
  geom_text(
    data = new_flute,
    aes(
      x = Group,
      y = 5,
      label = str_trim(.group),
      color = .group
    ),
    angle = 90,
    hjust = 1,
  )

reprex package (v2.0.1)

于 2021-10-14 创建

我是 cldList() 函数的作者。由于该函数旨在处理不同函数的不同输出,默认情况下它会删除空格、零和等号等字符,以便将结果传递给 multcompView::multcompLetters。通过删除零,在这种情况下,它将 C1C10 混为一谈。以下解决了这个问题:

flute <-
  cldList(P.adj ~ Comparison,
          data = bells$res,
          threshold = 0.05,
          remove.zero = FALSE)
flute