r - 将 P 值添加到组箱线图中的比较
问题描述
我正在尝试创建一个箱线图,该箱线图仅显示重要的 p 值,在箱线图中每个条的组内。例如这里它将比较 I1 和 SI2 的“一般”、“好”、“非常好”等
我尝试使用以下代码来实现上述情节
library(ggplot2)
library(dplyr)
data("diamonds")
labeldat <- diamonds %>%
group_by(cut, clarity) %>%
dplyr::summarise(labels = paste(n(), n_distinct(color), sep = "\n"))
Comparisons = list(c("I1","SI2"),c("I1","SI1"),c("I1","VS2"),c("I1","VS1"),c("I1","VVS2"),c("I1","VVS1"),c("I1","IF"),
c("SI2","SI1"),c("SI2","VS2"),c("SI2","VS1"),c("SI2","VVS2"),c("SI2","VVS1"),c("SI2","IF"),
c("SI1","VS2"),c("SI1","VS1"),c("SI1","VVS2"),c("SI1","VVS1"),c("SI1","IF"),
c("VS2","VS1"),c("VS2","VVS2"),c("VS2","VVS1"),c("VS2","IF"),
c("VS1","VVS2"),c("VS1","VVS1"),c("VS1","IF"),
c("VVS2","VVS1"),c("VVS2","IF"),
c("VVS1","IF"))
ggplot(diamonds, aes(x=cut, y=price)) +
geom_boxplot(aes(fill=clarity), position = position_dodge2(width=0.75)) +
theme_bw() +
geom_text(data = labeldat, aes(x = cut, y = -250, label = labels), hjust = 0.5, position = position_dodge2(width = .75))+
stat_compare_means(aes(group=clarity), label = "p.signif", method="t.test", comparisons = Comparisons)
不幸的是,使用比较参数似乎通过计算错误,我无法解决如何解决:警告消息:计算失败stat_signif()
:需要 TRUE/FALSE 的缺失值
我试过在没有比较的情况下运行它,但它似乎只是给了我一个总分
解决方案
我首先要说的是,在这个例子中进行了太多的比较,所以结果很混乱,为了适应额外的信息,y 轴被大大扩展了,箱线图被压扁了。但是为了提供答案并想象您可能有一个比较较少的数据集,问题是stat_compare_means()
比较 x 轴上的组。要通过 比较clarity
,您需要将其放在 x 轴上,然后按 刻面cut
。
library(ggplot2)
library(ggpubr)
library(dplyr)
labeldat <- diamonds %>%
group_by(cut, clarity) %>%
dplyr::summarise(labels = paste(n(), n_distinct(color), sep = "\n"))
ggplot(diamonds, aes(x=clarity, y=price)) +
geom_boxplot(aes(fill=clarity), position = position_dodge2(width=0.75)) +
stat_compare_means(aes(group=clarity), label = "p.signif", method="t.test", comparisons = combn(1:8, 2, FUN = list)) +
facet_grid(cols = vars(cut)) +
theme_bw() +
geom_text(data = labeldat, aes(x = clarity, y = -2000, label = labels), hjust = 0.5, position = position_dodge2(width = .75)) +
theme(axis.text.x = element_blank())
推荐阅读
- reinforced-typings - Export class members as typescript string literal
- json - What's the best way to validate multiple JSON field dependencies?
- python - 我需要使用函数 python 交换矩阵中的元素
- android - ClassCastException:无法将 MediaMetadataRetriever 强制转换为 AutoCloseable
- list - How to organize and show in a ListView my Map
> - python - How can I mock functions that are called by async code?
- kubernetes-helm - Helm charts creating from python API
- java - SpringBoot Maven 项目未在数据库中创建表
- python - 使用面板数据Python中的标识符使用非空值替换缺失值
- tensorflow - 子类化 tf.keras.Model 时创建 tf.keras.add 层