将 P 值添加到组内比较箱线图

2023-12-10

我正在尝试创建一个箱线图,它仅显示箱线图中每个条形的组内的显着 p 值。例如,它会比较 I1 和 SI2 的“一般”、“良好”、“非常好”等

enter image description here

我尝试使用以下代码来实现上面的情节

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 时缺少值

我尝试在没有比较的情况下运行它,但它似乎只是给了我一个总体分数


您可以使用 ggsignif 来实现这一点。它允许手动注释,因此您可以单独计算 p 值,并创建带有过滤比较的注释数据框。例子:

library(ggplot2)
library(ggsignif)
library(dplyr)
library(data.table)

dm <- split(diamonds, diamonds$cut)
getp <- function(y, pval=.05){
    a <- stats::pairwise.wilcox.test(x=y$price, g=y$clarity,
        p.adjust.method="none", paired=FALSE)
    return(as.data.table(as.table(a$p.value))[!is.na(N) & N < pval])
}
dmp <- data.table::rbindlist(lapply(dm, getp), idcol = "cut")
data.table::setnames(dmp, c("cut", "start", "end", "label"))
dmp$label <- formatC(
    signif(dmp$label, digits = 3),
    digits = 3,
    format = "g",
    flag = "#"
)
dmp[, y := (0:(.N-1)) * (2E4/.N)+2e4, by=cut]
data.table::setDF(dmp)

ggplot(diamonds, aes(x=clarity, y=price)) +
    geom_boxplot(aes(fill=clarity), position = position_dodge2(width=0.75)) + 
    facet_wrap(~ cut)+
    ggsignif::geom_signif(data=dmp,
        aes(xmin=start, xmax=end, annotations=label, y_position=y),
        textsize = 2, vjust = -0.2,
        manual=TRUE) + 
    ylim(NA, 4E4) +
    theme_bw() +
    theme(axis.text.x = element_blank())

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 P 值添加到组内比较箱线图 的相关文章

  • 我可以调整scale_color_brewer的下限吗?

    我已经订购了我想使用 color Brewer 的分类数据 但我很难看到非常低的值 有没有办法去掉这些较低的值或设置范围的下限 ggplot data frame x 1 6 y 10 15 w letters 1 6 aes x y co
  • 使用 R 中的 tidyverse 重新调整因子和重新排序因子

    我想使用这些功能重新调平 and 重新排序 在我的数据框中 我了解重新调整级别的工作原理 但我不明白为什么我在 data frame 中看不到级别的变化 例如 假设我有鸢尾花数据集 library tidyverse head iris g
  • 无法在 Powershell 中运行 R.exe

    我经常发现在命令行 Windows 上运行 R 更有用 然而 当我在 Powershell 中尝试时 我往往会遇到问题 但这可以通过第一次运行轻松克服cmd然后就可以了 这是我执行此操作时遇到的错误R CMD BATCH Invoke Hi
  • 在 Linux 下更改 RStudio 用户界面(不是图形等)中的字体大小

    This is not关于更改使用 RStudio 生成的图表中的字体大小的问题 我已经知道该怎么做了 我在配备 视网膜 显示屏的 MacBook Pro 上的 Linux 下使用 RStudio 我使用 KDE 作为我的窗口管理器 我可以
  • 根据共同值对两个数据帧求和

    我有一个看起来像的数据框 day of week count 1 0 3 2 3 1 3 4 1 4 5 1 5 6 3 另一个喜欢 day of week count 1 0 17 2 1 6 3 2 1 4 3 1 5 4 5 6 5
  • for 循环与 cor.test 在许多类别上

    我正在尝试在 R 中编写一个循环 它将循环遍历 3 个不同的物种 以计算两个连续变量 Redness 和 VarNormAbund 之间的相关性 我的循环正在运行 但 3 个物种中每一个的输出都是相同的 这让我认为循环卡在第一个物种上 co
  • 绘制带有颜色渐变的geom_segment线? (或者还有另一种方法来强调开始与结束吗?)

    我的数据框中有大量行 100 000 的两组纬度和经度变量 我正在尝试绘制一个连接这两组坐标的图 即 从纬度1 经度1 to 纬度2 经度2 使用 geom segment 使用非常低的 alpha 使线条透明 因为线条太多 我想强调这些线
  • 一次评论多个对象

    假设您有一个变量 a 到 j 的列表 for x in 1 10 assign letters x x 您将如何评论那些最近创建的对象 我尝试过类似的事情 for x in 1 10 comment get letters x lt pas
  • 当在另一行中找到元素逗号分隔时合并行

    您好 我有一个数据框 例如 species family Events groups 1 SP1 A 10 22 G1 2 SP1 B 7 G2 3 SP1 C D 4 5 6 1 3 G3 G4 G5 G6 4 SP2 A 22 10 G
  • R 在安装包依赖项时不考虑最大版本

    假设我正在开发一个名为magicr做一些统计魔术 我希望它使用另一个名为的包中的函数fairydust 假设 存在于 CRAN 上 很遗憾fairydust刚刚向 CRAN 发布了 2 0 0 版本 完全破坏了我计划使用的功能 所以我更新了
  • DT数据表中的列对齐

    In my shiny我正在使用的应用程序datatable函数来自DT库构建一个表格并希望将列居中对齐 我可以用formatStyle column textAlign center 但它只影响列体而不影响标题 我们必须设置columnD
  • R - 如何为数据范围内的缺失值绘制条形图零点?

    假设我对 1 到 10 之间的整数的 200 个点有 10 个观察值 mysample sample rep seq 1 10 20 10 我想用条形图绘制它 barplot table mysample barplot https i s
  • 单击 R Shiny 中的按钮后将输入字段重置为 null

    我正在构建一个应用程序 用户可以在其中按列输入表的数据值 单击 添加 按钮后 输入的值将按列附加到现有值 例如 如果输入 col1 2 3 并单击 ADD 我们将在显示屏中看到 col1 2 3 如果输入 col2 4 7 并单击 ADD
  • 在构建分数多项式函数时避免 eval(parse())

    我的目标是在 R 中编写一个函数 它接受 a 的系数分数多项式 http www stata com manuals13 rfp pdf rfpRemarksandexamples FP 并返回一个向量化函数 该函数针对给定的输入数字计算指
  • R:行数不相等的列绑定

    我有两个数据集 它们每个都有变量 ID Block 和 RT 反应时间 我想合并 列绑定这两个集合 以便我拥有一个包含变量的数据集 ID 块 RT1 RT2 问题是两个集合中的行数不相等 此外 ID 和块号匹配也很重要 缺失值应替换为 NA
  • 在 r 中的字符串内循环以输出具有向量化值的表达式

    示例数据 gt DF A B C 1 11 22 88 2 11 22 47 3 2 30 21 4 3 30 21 gt r 1 A A i B B i A A i C C i 3 B B i C C i A A i B B i C C
  • 在 R 中,为什么 sum 与其他方法(例如 cumsum)相比如此慢?

    我正在尝试实现一个需要非常快的函数 主要是因为它一遍又一遍地处理巨大的数据帧 R 总是让我感到困惑 为什么它有时有点慢 而有时又慢得离谱 不幸的是 它从来都不快 不管怎样 我一直认为 如果可能的话 当以某种方式推入 apply sapply
  • geom_polygon 的渐变填充

    此代码生成一个包含 3 个多边形的图表 我正在创建一个显示 3 个多边形的图表 如果有更好的方法来绘制多边形 我不太感兴趣 实际上这些多边形代表事件 并且这些事件有一个持续时间 首先 我感兴趣的是使用渐变填充每个多边形的可能性 librar
  • dplyr +“meta”-columns:当列包含要使用的其他列的名称而不是数据时

    我想知道以下问题在 dplyr 中是否有一个优雅的解决方案 要提供一个简单的可重现示例 请考虑以下 data frame df lt data frame a 1 5 b 2 6 c 3 7 ref c a a b b c stringsA
  • R:中断 for 循环

    你能确认下一个break是否取消了内部for循环吗 for out in 1 n old id velho lt old table df id out for in in 1 n id novo lt new table df ID in

随机推荐

  • 脚本可以在 powershell 中运行,但不能在 c# 中运行

    该脚本在 PowerShell ISE 中运行时有效 它设置给定用户的远程桌面服务配置文件Active Directory 中的设置 Get ADUser FirstName LastName ForEach Object User ADS
  • 如何获取 os.system() 的输出? [复制]

    这个问题在这里已经有答案了 我想得到输出os system nslookup google com 但我总是得到0 打印时 这是为什么 我该如何解决这个问题 Python 3 Mac 我在看如何在python中存储已打印到stdout的os
  • 使用 WPF + Windows Azure 存储二进制数据(图像、文件等)

    我有一个使用 Windows Azure 作为后端的 WPF 应用程序 我使用 SQL Azure 存储 WPF 应用程序通过 WCF 服务访问的数据 我需要能够在服务器端存储二进制文件 例如图像 并想知道存储这些文件的最佳方法是什么 我可
  • 添加与 GDK 的共享联系人

    我正在研究 Google Glass GDK 并且正在寻找是否可以从应用程序添加共享联系人 我在官方文件中没有看到任何对此的引用 我想知道你是否可以这样做 感谢您的帮助 目前先睹为快的GDK尚不支持添加共享联系人 如果您对此功能感兴趣 请在
  • 将意图保存在共享首选项中

    我有一个应用程序 我可以从中启动手机上安装的其他应用程序 长按我可以获得应用程序选择器 结果我收到一个意图数据 我如何保存它以便用户在关闭时返回我的应用程序有相同的快捷方式设置吗 我保存其他类似的东西 SharedPreferences s
  • 版本不匹配 global tsc 1.0.3.0 != VS Code 的语言服务 (2.2.1)

    I have this popup presented 我尝试通过在 cmd 中执行以下命令来安装正确的 tsc npm install g save dev email protected and npm install save dev
  • python pandas 带括号和不带括号的函数

    我注意到许多 DataFrame 函数如果不带括号使用似乎表现得像 属性 例如 In 200 df DataFrame np random randn 7 2 In 201 df head Out 201 0 1 0 1 325883 0
  • 有没有办法查看架构验证失败的位置?

    我正在尝试根据某种复杂的 模式 如空手道文档中定义 验证 json 我得到的错误并不那么明确 reason not equal 我如何检查它实际上在哪里验证失败 真的很抱歉 这都是我的错 我知道这对你没有帮助 但我现在正在重写空手道的核心
  • 如何定义一个地图接受 Thrift 中不同类型的值?

    我用 thrift 定义了一个结构 struct QuerySetRecord 1 string recordId 2 string crawlerName 3 string recordType 4 map
  • 仅删除 HTML 字符串中标签之间的多余空格

    嗨 我有一个 HTML 字符串 例如 div p You have received an alert from project span class fields Project Name span br p p span class f
  • 我可以暂停和恢复线程吗?

    我正在尝试创建一个线程 它在后台执行操作 我需要能够在需要时有效地 暂停 它 并在以后再次 恢复 它 另外 如果当我 暂停 线程时线程正在执行某些操作 它应该使调用线程等待 直到它完成正在执行的操作 我对 Python 中的多线程还很陌生
  • 如何使用 REST 将数据从 AngularJS 发布到 Struts 2

    我需要从客户端获取到服务器端的值 我正在使用 AngularJS 和 Struts2 REST 我的控制器没有获取传递的值 还是我传递或使用 RESTful 控制器时出错了 这是我的代码 angularcontroller js app c
  • Android Studio 意外的顶级异常:

    今天 我遇到了一个巨大的错误 不允许我在手机上运行示例项目 当 Android Studio 构建项目时 它首先显示以下目标 UP TO DATE demoproject processDebugResources UP TO DATE d
  • 如何获取java中两个日期之间的日期列表?如何还包含/排除开始日期/结束日期?

    我已经尝试过堆栈溢出中给出的示例java中如何获取两个日期之间的日期列表 该代码完美运行 但有一个小问题 我的列表中也没有得到结束日期 如何选择包含 排除开始日期并包含结束日期 我可以使用remove 和add 手动执行此操作吗 或者Jod
  • 将 checkstyle-configuration 从声纳导入到 eclipse-checkstyle-plugin

    我想从声纳导出 checkstyle 规则并将它们导入到 checkstyle eclipse 插件中 不幸的是 sonar 将 checkstyle 规则导出到 csv 文件 但 checkstyle 插件只接受 xml 文件的导入 有什
  • SignalR 2.2 和 ARR3.0 负载平衡

    我正在使用 signalr2 2 Web 应用程序并托管在 IIS 8 中 这里我尝试使用ARR3 0为我的应用程序实现负载均衡 在我的服务器场中 我连接了两台服务器并将路由规则设置为 加权循环 每个服务器都有一个带有 HTML 页面的 j
  • 如何将文本文件从 jar 复制到 jar 外部的文件中?

    假设我的 jar 包 com test io 中有一个名为 test txt 的文件 我将如何编写一个类来检索该文本文件 然后将内容复制到文件系统上的新文件中 假设所述 jar 在您的类路径上 URL url getClassLoader
  • 我找不到 Android keytool

    我正在尝试遵循 Android 映射教程并且到了这部分我必须获得 API 密钥 我已经找到了我的debug keystore但似乎没有keytool应用程序在目录中 C Documents and Settings tward androi
  • Range(Cells()) 中的运行时错误 1004

    我在许多宏中有以下代码 但它需要大量我不需要的信息 公式如下 Range A1 h BD h Value Worksheets ABC1 Range A h BD h Value 我尝试将公式更改为更动态的版本 如下 Sub MFGI NA
  • 将 P 值添加到组内比较箱线图

    我正在尝试创建一个箱线图 它仅显示箱线图中每个条形的组内的显着 p 值 例如 它会比较 I1 和 SI2 的 一般 良好 非常好 等 我尝试使用以下代码来实现上面的情节 library ggplot2 library dplyr data