set.seed(42)
DF <- data.frame(bias=rnorm(2700),cnd=1:27)
DF$cnd <- factor(DF$cnd)
试图了解在ggplot中使用median_hilow。我希望找到一种方法来绘制上下四分位数范围。但我无法在任何地方找到'fun.data = median_hilow'的完整解释。即使我认为它正在做正确的事情。是否有关于此功能的完整文档来检查它是如何绘制IQR的?
library(ggplot2)
ggplot(DF,aes(x=cnd,y=bias,colour=cnd)) +
stat_summary(fun.data=median_hilow)
答案 0 :(得分:4)
median_hilow
只是来自smedian_hilow
包的Hmisc
的包装。
来自smean / smedian
的{{1}}功能组的文档。
根据以下@BondedDust的评论,您需要先安装好的软件包Hmisc
。
(键入Hmisc
和?smedian_hilow
):
提供了许多统计汇总函数,用于summary.formula和summary(以及tapply和它们自己)。 smean.cl.normal计算3个汇总变量:基于t分布的样本均值和低和高阶高斯置信限。 smean.sd计算平均值和标准差。 smean.sdl计算平均值加上或减去标准差的常数乘以。 smean.cl.boot是基本非参数引导的非常快速的实现,用于获得总体均值的置信限,而不假设正态性。这些功能都会自动删除NA。 smedian.hilow计算样本中位数和一对选定的外部分位数,它们具有相等的尾部区域。
?median_hilow
根据置信区间计算中位数和下四分位数和上四分位数。举个例子:
smedian.hilow
您可以查看@BondedDust关于如何使用x <- rnorm(100)
> smedian.hilow(x, conf.int=.5) # 25th and 75th percentiles
Median Lower Upper
0.02036472 -0.76198947 0.71190404
函数实现此问题的答案。
答案 1 :(得分:4)
如果你想要IQR,那么你不需要median_hilow
,至少有它的默认值,因为它提供低值作为第2.5百分位数,高值作为第97.5百分位数。 (IQR将是第25和第75。)
> smedian.hilow(1:100)
Median Lower Upper
50.500 3.475 97.525
您可以使用0.5的conf.int以这种方式将conf.int
- 参数传递给Hmisc::smedian.hilow
- 函数,这将为您提供四分位数范围,因为(如Hmisc帮助页面所示):{ {1}}:
" smedian.hilow computes the sample median and a selected pair of outer quantiles having equal tail areas."
答案 2 :(得分:2)
通过这样做,我可以匹配证明其按照我们的想法行事的结果:
library(plyr)
iqr <- function(x, ...) {
qs <- quantile(as.numeric(x), probs = c(0.25, 0.75), na.rm = TRUE)
names(qs) <- c("ymin","ymax")
qs
}
ddply(DF, .(cnd), summarise, new = iqr(bias))
但是此示例突出显示conf.int
参数至关重要的