如何解决通过循环访问数据框中的变量名称,使用 ggpubr 和 rstatix 创建一组图
我正在尝试创建一个脚本,使用该脚本我可以自动创建一组图(分面和分组),并使用 ggpubr
和 rstatix
包计算和绘制 p 值。
set.seed(1234)
创建数据集
data_set <-
data.frame(
var1 = rep(c("N","N","Y","Y"),4),var2 = c(rep("type1",8),rep("type2",8)),var3 = c(rep("type1",rep("type1",4)),x = rnorm(16),y = rnorm(16),z = rnorm(16)
)
对变量 x
与var2
按 var3
分组并按 var1
分面(见下文),并使用 rstatix
函数将结果存储为数据框
stat.test <- data_set %>%
group_by(var2,var1) %>%
t_test( x ~ var3) %>%
adjust_pvalue(method = "bonferroni") %>%
add_significance("p.adj") %>%
add_xy_position(x = "var2",dodge = 0.8)
这次使用由 x
分组并再次由 var3
分面的数据对变量 var2
与 var1
执行另一个 t 检验并执行 mutate
以改变一些变量,以便它们在使用下面的函数绘制时正确对齐。
stat.test.1 <- data_set %>%
group_by(var3,var1) %>%
t_test( x ~ var2) %>%
adjust_pvalue(method = "bonferroni") %>%
add_significance("p.adj") %>%
add_xy_position(x = "var3",dodge = 0.8) %>%
mutate(
xmin = xmin + c(0,-0.6,-0.6),xmax = xmax + c(0.6,0.6,0),y.position = y.position + c(1,1,2,2)
)
使用 ggBoxplot
绘图
ggBoxplot(
data_set,x = "var2",add = "mean_sd",y = "x",color = "var3",facet.by = "var1"
) +
stat_pvalue_manual(stat.test,label = "p.adj",tip.length = 0.01,hide.ns = FALSE) +
stat_pvalue_manual(
stat.test.1,hide.ns = FALSE
) +
scale_y_continuous(expand = expansion(mult = c(0.01,0.1)))
所有这些都符合我的预期,我得到了我想要的图以及绘制的显着性值(虽然不完美,但需要对显着性条的 y 位置进行一些调整)。
我想要做的是使用 tidy
方法创建一个函数或脚本,为所有数字变量(x
、y
和 z
) 以与此图相同的方式分组和分面。我能够自己获取图表,但是在生成统计数据框并使用它们将 p 值和显着性条添加到图表中时遇到了困难。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。