繁体   English   中英

如何 plot R 中的两个样本 t.test() 均值、中位数和 CI?

[英]How to plot Two Sample t.test() means, medians, and CI in R?

使用我拥有的数据,此R代码x <- t.test(Age ~ Completers, var.equal = TRUE, data = data)呈现以下结果:

    Two Sample t-test

data:  Age by Completers
t = 0.93312, df = 1060, p-value = 0.351
alternative hypothesis: true difference in means between group Completers and group Non Completers is not equal to 0
95 percent confidence interval:
 -0.5844018  1.6442118
sample estimates:
    mean in group Completers mean in group Non Completers
                    37.16052                     36.63062

我想要的是 plot 每个均值(在x$estimate[1]x$estimate[2]中找到)在x轴上有自己的点,在y轴上的适当高度(在同一张图上)和每个点补充了相同的置信区间 (CI)(在x$conf.int[1]x$conf.int[2]中找到)。 像这样[*]:

在此处输入图像描述

不幸的是,如果我没记错的话, plot() (来自Generic XY Plotting )似乎无法处理这个问题。 所以我尝试使用plotCI (来自gplots )如下:

library(gplots)

plotCI(x = x$estimate[1], y = x$estimate[2], 
       li = x$conf.int[1], ui = x$conf.int[2])

但它呈现如下所示:

在此处输入图像描述

我的问题:

  • 有没有办法获得 plot,例如在第一个图中使用基本 R 代码?
  • 如果没有,解决方案是什么(不使用jmv::代码(参见 [*]))?

[*] 使用以下代码的 Jamovi 版本 2.3.15.0 获得的图表(但我想避免使用jmv:: ):

jmv::ttestIS(
  formula = Age ~ Completers,
  data = data,
  plots = TRUE
)

使用的系统:

  • R 4.2.1
  • RStudio 2022.07.1 Build 554
  • macOS Monterey 版本 12.5.1(英特尔)

以下应该做你想要的,虽然我没有数据,所以可能需要一些调整:

样本数据

df <- data.frame(type = c("Completers","Non Completers"), 
                          point_est = c(37.2, 36.8),
                          ci_lo = c(36.4, 36.0),
                          ci_hi = c(38.0, 37.5))

Plot

plot(NA, xlim = c(0,3), ylim = c(35, 38), # blank plot
     axes = FALSE, xlab = "", ylab = "")
segments(x0 = c(1,2), y0 = df$ci_lo, y1 = df$ci_hi) # add segments
points(df$point_est, pch = 19) # add means
axis(1, at = 0:3, labels = c(NA, df$type, NA)) # add x axis
axis(2) #add y axis
mtext(side = 1, "Completers", padj = 4) # add x label 
mtext(side = 2, "Age", padj = -4) # add y label

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM