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_df
的 Group
列中有 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$res
的Comparison
列(-
的左侧或右侧)仍有41个不同的组出现。
flute <-
cldList(P.adj ~ Comparison,
data = bells$res,
threshold = 0.05)
n_distinct(flute$Group)
#> [1] 38
突然间,在 cldList()
之后只剩下 38 个不同的组。名称中带有 10
的所有组均已丢失。因此,我怀疑它会以某种方式与功能有关,例如S1
和 S10
在同一组。然而,我给这些组起了完全不同的名字,这仍然发生了。我很困惑,根本不知道如何解决这个问题。这与箱线图本身无关,因此该线程的名称具有误导性。您可以使用此可重现代码联系 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
。通过删除零,在这种情况下,它将 C1
与 C10
混为一谈。以下解决了这个问题:
flute <-
cldList(P.adj ~ Comparison,
data = bells$res,
threshold = 0.05,
remove.zero = FALSE)
flute
我问了一个问题
在 运行 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_df
的 Group
列中有 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$res
的Comparison
列(-
的左侧或右侧)仍有41个不同的组出现。
flute <-
cldList(P.adj ~ Comparison,
data = bells$res,
threshold = 0.05)
n_distinct(flute$Group)
#> [1] 38
突然间,在 cldList()
之后只剩下 38 个不同的组。名称中带有 10
的所有组均已丢失。因此,我怀疑它会以某种方式与功能有关,例如S1
和 S10
在同一组。然而,我给这些组起了完全不同的名字,这仍然发生了。我很困惑,根本不知道如何解决这个问题。这与箱线图本身无关,因此该线程的名称具有误导性。您可以使用此可重现代码联系 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
。通过删除零,在这种情况下,它将 C1
与 C10
混为一谈。以下解决了这个问题:
flute <-
cldList(P.adj ~ Comparison,
data = bells$res,
threshold = 0.05,
remove.zero = FALSE)
flute