首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用R和GraphPad棱镜计算分位数

使用R和GraphPad棱镜计算分位数
EN

Stack Overflow用户
提问于 2017-06-13 21:00:49
回答 2查看 617关注 0票数 1

我是R的新手,在使用R之前,我使用的是GraphPad Prism7.0。现在,我试着将两者作为数据处理器进行比较。我在分位数计算中发现了一个差异,所以有人知道为什么它们是不同的吗??

在R中,我有

代码语言:javascript
复制
par(pty="s", cex.axis=1, las=1, cex.lab=1)
a1=c(22.02, 23.83,  26.67,  25.38,  25.49,  23.50,  25.90,  24.89, 25)
a2=c(21.49, 22.67,  24.62,  24.18,  22.78,  22.56,  24.46,  23.79, 25)
a3=c(20.33, 21.67,  24.67,  22.45,  22.29,  21.95,  20.49,  21.81, 25)
boxplot(a1,a2,a3, names=c("a1","a2","a3"), ylab="Valor", ylim=c(20,28))

a3的分位数是

代码语言:javascript
复制
quantile(a3)
   0%   25%   50%   75%  100% 
20.33 21.67 21.95 22.45 25.00

在GraphPad棱镜中绘制相同的数据:

曲线图系列:柱状框&胡须绘图: tukey

我得到了

分位数是

为什么它们是不同的(特别是a3)?

为什么R可以识别a3中的4个异常值,而GraphPad不能?

建议??

EN

回答 2

Stack Overflow用户

发布于 2017-06-13 21:46:07

正如@lmo所说,R有许多方法来计算分位数。默认情况下,R使用type=7。GraphPad使用的方法相当于R中的type=6。所以我创建的方法是

代码语言:javascript
复制
par(pty="s", cex.axis=1, las=1, cex.lab=1)
a1=c(22.02, 23.83,  26.67,  25.38,  25.49,  23.50,  25.90,  24.89, 25)
a2=c(21.49, 22.67,  24.62,  24.18,  22.78,  22.56,  24.46,  23.79, 25)
a3=c(20.33, 21.67,  24.67,  22.45,  22.29,  21.95,  20.49,  21.81, 25)
boxplot(
  quantile(a1,type=6),
  quantile(a2,type=6),
  quantile(a3,type=6), 
  names=c("a1","a2","a3"), ylab="Valor", ylim=c(20,28))

代码语言:javascript
复制
> quantile(a1,type=6)
    0%    25%    50%    75%   100% 
22.020 23.665 25.000 25.695 26.670 
> quantile(a2,type=6)
    0%    25%    50%    75%   100% 
21.490 22.615 23.790 24.540 25.000 
> quantile(a3,type=6)
   0%   25%   50%   75%  100% 
20.33 21.08 21.95 23.56 25.00

与GraphPad相同

票数 2
EN

Stack Overflow用户

发布于 2017-06-13 21:33:09

回答如何在箱线图中使用不同分位数计算的问题:

使用ggplot2很容易做到这一点。

代码语言:javascript
复制
DF <- data.frame(a1, a2, a3)
DF <- stack(DF)

quants <- tapply(DF$values, list(DF$ind), quantile, type = 6)
quants <- as.data.frame(do.call(rbind, quants))
quants$g <- rownames(quants)

library(ggplot2)
ggplot(quants, aes(x = g, lower = `25%`, 
                   middle = `50%`, upper = `75%`,
                   ymin = `0%`, ymax = `100%`)) +
  geom_boxplot(stat = "identity")

然后,您可以进一步自定义此图,如许多ggplot2教程中所述。

PS:但是,我会使用R的默认箱线图统计数据,因为这些统计数据试图重现Tukey的箱线图。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44522293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档