如何在没有原始数据的情况下为ggplots计算有效括号的y,xmin和xmax位置?

问题描述

我正在尝试将重要性括号添加到一系列分组的ggplots中,如下图所示:

Photo of barPlot

我正在寻找一种解决方案,可以使用仅包含分析结果的数据框添加重要性括号和p值,因为我无法访问原始数据。我正在做数百个这样的绘图,所以我正在寻找一种不依赖于为每个绘图的重要性括号手动指定x和y坐标的解决方案。

我尝试使用rstatix软件包中的一些函数(如下所示)来尝试计算重要性括号的y,xmin和xmax值,以便随后可以使用软件包{ {1}}将方括号和显着性水平添加到情节中,但我一直没有成功。

我怀疑这些功能的数据格式不正确,或者使用的功能不正确。我不确定是什么问题,因此不胜感激!

我已经浏览了以下网页:

以及上述功能的R文档,但无法解决此问题。


这是一个可复制的示例,以显示正在发生的事情:

ggpubr

以下是一些伪造的数据,它们反映了我正在使用的数据帧:

library(dplyr)
library(ggplot2)
library(ggsignif)
library(rstatix)

因此,现在我需要计算重要性括号的xmin和xmax值,这些值将指示每个响应选项的subpopulationGroup中的A,B和C组之间的差异在哪里。每个重要性括号也需要y坐标。

函数dataGlobal <- data.frame( subpopulationGroup = factor(c('A','A','B','C','C')),responseOption = factor(c('option 1','option 2','option 3','option 4','option 1','option 4')),mean = c(16,10,55,20,23,16,42,19,29,11,44,16),lowerCI = c(12,7,50,18,36,15,25,9,39,13),upperCI = c(20,13,60,24,21,49,34,14,48,20) ) dataDifferences <- data.frame( responseOption = factor(c('option 1',.y. = c('mean','mean','mean'),group1 = factor(c('A','A')),group2 = factor(c('B',n1 = c(431,299,799,367,431,517,314,1818,643),n2 = c(517,643,789,292,1176,437,437),group1UpperCI = c(20,24),group2UpperCI = c(29,20),statistic = c(3.864,4.132,8.973,0.002,3.041,2.738,0.134,0.907,20.890,0.412,10.861,1.577),df = c(1,1,1),p = c(0.050,0.043,0.003,0.958,0.091,0.076,0.714,0.330,0.001,0.209,0.528) ) add_xy_position()add_x_position()似乎是用来计算这些值的。但是,这三个函数的第一个参数均为“ test”,并且根据文档,“ test是rstatix_test类的对象,由t_test(),wilcox_test(),sign_test(),tukey_hsd(),dunn_test()返回)。 “

我怀疑这就是问题所在。由于我无权访问原始数据,因此无法在add_y_position中运行任何统计测试,并且不知道是否/如何将分析结果的数据框转换为“ rstatix_test类的对象”。这是问题吗?如果是这样,是否有解决方法?

由于某种原因,当我将参数“ test”指定为数据帧而不是rstatix_test对象时,rstatix将运行,但是会返回一个数据帧,其中xmin和xmax变量的值为空白。

add_x_position()

Photo of resulting dataframe

由于dataCoordinatesX <- add_x_position(test = dataDifferences,x = 'responseOption',dodge = 0.8) 没有参数“ test”,所以我认为我至少可以得到y坐标值:

get_y_position()

这是结果数据框:

Photo of dataCoordinates

但是我希望结果数据框看起来像这样:

Photo of dataExpected

我在公式参数中犯了一个错误吗? (我刚刚遵循了这里的文档-“ x〜group形式的公式”。)

因此,当然,由于我没有y,xmin或xmax值,因此无法使用dataCoordinatesY <- get_y_position(data = dataGlobal,formula = mean ~ subpopulationGroup,fun = 'mean_ci',comparisons = list(c('A','B'),c('B','C'),c('A','C')) ) 之类的函数,例如ggpubr或{{1 }} / stat_pvalue_manual()。任何帮助解决此问题将不胜感激,如果您需要任何其他信息,请告诉我。谢谢!

我在geom_bracket() 1.2中使用stat_bracket() 4.0.2,R 1.0.2,dplyr 3.3.2,ggplot2 0.6.0在MacOS Catalina 10.15.6上为.5042。


如果您感到好奇,这是我用来创建带有上方有效括号的分组条形ggplot的代码:

rstatix

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...