set.seed(42)
DF <- data.frame(bias=rnorm(2700),cnd=1:27)
DF$cnd <- factor(DF$cnd)
试图理解median_hilow在ggplot中的使用。我希望找到一种方法来绘制上下四分位数的范围。但我在任何地方都找不到“fun.data=median_hilow”的完整解释。尽管我认为它做的是对的。该函数是否有任何完整的文档来检查它是如何绘制IQR的?
library(ggplot2)
ggplot(DF,aes(x=cnd,y=bias,colour=cnd)) +
stat_summary(fun.data=median_hilow)
发布于 2015-02-10 16:33:48
median_hilow
只是smedian_hilow
的包装器,它来自于Hmisc
包。
从来自smean / smedian
的Hmisc
函数组的文档。
如下面@BondedDust的评论所示,您需要在前面安装包Hmisc
。
(输入?smedian_hilow
和?median_hilow
):
提供了一些统计汇总函数,以便与summary.formula和汇总一起使用(以及tapply和它们自己)。smean.cl.normal计算了3个汇总变量:样本均值和基于t分布的上、下高斯置信限。smean.sd计算平均值和标准差。smean.sdl计算平均值加减一个常量乘以标准差。smean.cl.boot是一种快速实现的基本非参数自举,用于在不设正态的情况下获得种群均值的置信限。这些函数都会自动删除NAs。smedian.hilow计算样本中值和具有相等尾部区域的选定的一对外部分位数。
smedian.hilow
根据置信区间计算中值、下四分位数和上四分位数。例如:
x <- rnorm(100)
> smedian.hilow(x, conf.int=.5) # 25th and 75th percentiles
Median Lower Upper
0.02036472 -0.76198947 0.71190404
您可以查看@BondedDust关于如何使用ggplot2
函数实现这个问题的答案。
发布于 2015-02-10 17:20:50
如果您想要IQR,那么您就不需要median_hilow
,至少它的默认值是这样的,因为它将低值作为2.5个百分位数,而高值作为97.5个百分位数。(伊拉克数量将分别为25和75)
> smedian.hilow(1:100)
Median Lower Upper
50.500 3.475 97.525
您可以使用0.5的conf.int
-parameter以这种方式将-parameter传递给Hmisc::smedian.hilow
-function,这将为您提供四分位数范围,因为(如Hmisc帮助页面所述):" smedian.hilow computes the sample median and a selected pair of outer quantiles having equal tail areas."
:
ggplot(DF,aes(x=cnd,y=bias,colour=cnd)) +
stat_summary(fun.data=median_hilow, conf.int=.5)
发布于 2015-02-10 16:24:21
想一想,通过这样做,我可以与证明它所做的一切的结果相匹配:
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))
但是这个例子突出了impot,conf.int
参数是至关重要的。
https://stackoverflow.com/questions/28436467
复制相似问题