gpt4 book ai didi

R boxplot,使用 "stat_compare_means"更改 p 值中的位数

转载 作者:行者123 更新时间:2023-12-04 09:31:13 29 4
gpt4 key购买 nike

使用 ToothGrowth 数据集(内置于 R 中),我使用了以下代码。

library(ggplot2)
library(tidyverse)
library(ggpubr)
p <- ggboxplot(ToothGrowth, x = "supp", y = "len",
color = "supp", palette = "jco",
add = "jitter",
facet.by = "dose", short.panel.labs = FALSE)
p + stat_compare_means(label = "p.format")

现在,我希望 p 值有 4 位数字。我研究了以前的类似帖子,然后尝试了以下两个选项
p + stat_compare_means(label = "p.format", digits = 4)
p + stat_compare_means(label = "p.format", round(p.format, 4))

不幸的是,两者都不起作用。可能有人有解决方案吗?谢谢你。

最佳答案

这是使用 sprintf 的一种选择

library(ggplot2)
library(tidyverse)
library(ggpubr)
p <- ggboxplot(ToothGrowth, x = "supp", y = "len",
color = "supp", palette = "jco",
add = "jitter",
facet.by = "dose", short.panel.labs = FALSE)
p + stat_compare_means(aes(label = sprintf("p = %5.4f", as.numeric(..p.format..))))

enter image description here

更新

针对您的评论,您可以执行以下操作
p <- ggboxplot(ToothGrowth, x = "supp", y = "len",
color = "supp", palette = "jco",
add = "jitter",
facet.by = "dose", short.panel.labs = FALSE)
p + stat_compare_means(aes(label = ifelse(
p < 1.e-2,
sprintf("p = %2.1e", as.numeric(..p.format..)),
sprintf("p = %5.4f", as.numeric(..p.format..)))))

enter image description here

在这里,我使用科学记数法打印 p 值 if p < 1.e-2否则作为 4 位数字的浮点数。

关于R boxplot,使用 "stat_compare_means"更改 p 值中的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56068860/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com