无法在我的条形图上放置重要值的正确顺序(emmeans_test 重新排列因子)
Can't place correct order of significant values over my bar graph (emmeans_test rearranges factors)
我正在使用 rstatix
进行单向方差分析,并希望在我的图上放置重要的成对测试值(使用 emmeans_test
)。
但是,emmeans_test
的输出对我的因子进行了重新排序。因此显着性值未正确放置在右侧条上。
示例数据如下:
library(rstatix)
library(ggpubr)
library(dplyr)
#dataframe
ER <- read.table(header=TRUE, text="
Sex Group ER
M V 1046
M V 1290
M Z 1202
M Z 1056
F V 8000
F V 7859
F Z 4000
F Z 3409
")
ER <- ER %>%
set_ref_level("Sex", ref = "M") #set males as my reference
ER$Sex
以正确的顺序显示我的因素,男性在前
但是,在我执行 emmeans_test
之后,输出发生了变化。也许按字母顺序排列?
res.aov <- ER %>% anova_test(ER ~ Sex * Group)
res.aov
pwc <- ER %>%
group_by(Sex) %>%
emmeans_test(ER ~ Group, p.adjust.method = "bonferroni") #output now has females first.
pwc
我试着指定顺序,按照我希望它出现在情节中的方式,首先是男性,然后是女性,最后是女性 + T。这样做不会改变任何东西。
pwc1 <- pwc[c(2,1),]
pwc1
#plot data
e <- ggboxplot(ER, x = "Sex", y = "ER", color = "Group",
palette = "jco")
print(e)
pwc1 <- pwc1 %>% add_xy_position(x = "Sex")
e + stat_pvalue_manual(pwc1) + labs(subtitle = get_test_label(res.aov, detailed = TRUE),
caption = get_pwc_label(pwc1))
我的绘图顺序正确(男性、女性),但显着性值被调换了。
请让我知道我错过了什么!几天来我一直在网上寻找修复程序并尝试了不同的方法都无济于事。
(先谢谢大家了,我也是个R小白,如果上面的code/post有误,请见谅)
我对 rstatix
和 ggpubr
包不是很熟悉。然而,正如您自己已经发现的那样,在执行 emmeans_test
之后,您的 Sex
变量的顺序丢失了,即它被转换为一个字符,因此您得到了字母顺序。此问题的解决方案是将 pwc
数据中的 Sex
转换回一个因子,并使用 factor(Sex, levels = levels(ER$Sex))
:
将水平设置为 ER
数据集中的水平
library(rstatix)
library(ggpubr)
library(dplyr)
#dataframe
ER <- read.table(header=TRUE, text="
Sex Group ER
M V 1046
M V 1290
M Z 1202
M Z 1056
F V 8000
F V 7859
F Z 4000
F Z 3409
")
ER <- ER %>%
mutate(Sex = factor(Sex)) %>%
set_ref_level("Sex", ref = "M") #set males as my reference
res.aov <- ER %>%
anova_test(ER ~ Sex * Group)
#> Coefficient covariances computed by hccm()
pwc <- ER %>%
group_by(Sex) %>%
emmeans_test(ER ~ Group, p.adjust.method = "bonferroni") %>% #output now has females first.
# Set levels of Sex as in your ER dataset
mutate(Sex = factor(Sex, levels = levels(ER$Sex)))
pwc1 <- pwc[c(2,1),]
#plot data
e <- ggboxplot(ER, x = "Sex", y = "ER", color = "Group",
palette = "jco")
pwc1 <- pwc1 %>% add_xy_position(x = "Sex")
e + stat_pvalue_manual(pwc1) +
labs(subtitle = get_test_label(res.aov, detailed = TRUE),
caption = get_pwc_label(pwc1))
我正在使用 rstatix
进行单向方差分析,并希望在我的图上放置重要的成对测试值(使用 emmeans_test
)。
但是,emmeans_test
的输出对我的因子进行了重新排序。因此显着性值未正确放置在右侧条上。
示例数据如下:
library(rstatix)
library(ggpubr)
library(dplyr)
#dataframe
ER <- read.table(header=TRUE, text="
Sex Group ER
M V 1046
M V 1290
M Z 1202
M Z 1056
F V 8000
F V 7859
F Z 4000
F Z 3409
")
ER <- ER %>%
set_ref_level("Sex", ref = "M") #set males as my reference
ER$Sex
以正确的顺序显示我的因素,男性在前
但是,在我执行 emmeans_test
之后,输出发生了变化。也许按字母顺序排列?
res.aov <- ER %>% anova_test(ER ~ Sex * Group)
res.aov
pwc <- ER %>%
group_by(Sex) %>%
emmeans_test(ER ~ Group, p.adjust.method = "bonferroni") #output now has females first.
pwc
我试着指定顺序,按照我希望它出现在情节中的方式,首先是男性,然后是女性,最后是女性 + T。这样做不会改变任何东西。
pwc1 <- pwc[c(2,1),]
pwc1
#plot data
e <- ggboxplot(ER, x = "Sex", y = "ER", color = "Group",
palette = "jco")
print(e)
pwc1 <- pwc1 %>% add_xy_position(x = "Sex")
e + stat_pvalue_manual(pwc1) + labs(subtitle = get_test_label(res.aov, detailed = TRUE),
caption = get_pwc_label(pwc1))
我的绘图顺序正确(男性、女性),但显着性值被调换了。 请让我知道我错过了什么!几天来我一直在网上寻找修复程序并尝试了不同的方法都无济于事。
(先谢谢大家了,我也是个R小白,如果上面的code/post有误,请见谅)
我对 rstatix
和 ggpubr
包不是很熟悉。然而,正如您自己已经发现的那样,在执行 emmeans_test
之后,您的 Sex
变量的顺序丢失了,即它被转换为一个字符,因此您得到了字母顺序。此问题的解决方案是将 pwc
数据中的 Sex
转换回一个因子,并使用 factor(Sex, levels = levels(ER$Sex))
:
ER
数据集中的水平
library(rstatix)
library(ggpubr)
library(dplyr)
#dataframe
ER <- read.table(header=TRUE, text="
Sex Group ER
M V 1046
M V 1290
M Z 1202
M Z 1056
F V 8000
F V 7859
F Z 4000
F Z 3409
")
ER <- ER %>%
mutate(Sex = factor(Sex)) %>%
set_ref_level("Sex", ref = "M") #set males as my reference
res.aov <- ER %>%
anova_test(ER ~ Sex * Group)
#> Coefficient covariances computed by hccm()
pwc <- ER %>%
group_by(Sex) %>%
emmeans_test(ER ~ Group, p.adjust.method = "bonferroni") %>% #output now has females first.
# Set levels of Sex as in your ER dataset
mutate(Sex = factor(Sex, levels = levels(ER$Sex)))
pwc1 <- pwc[c(2,1),]
#plot data
e <- ggboxplot(ER, x = "Sex", y = "ER", color = "Group",
palette = "jco")
pwc1 <- pwc1 %>% add_xy_position(x = "Sex")
e + stat_pvalue_manual(pwc1) +
labs(subtitle = get_test_label(res.aov, detailed = TRUE),
caption = get_pwc_label(pwc1))