问题描述
假设我们有以下数据集(长度为24):
x <- c(30L,49L,105L,115L,118L,148L,178L,185L,196L,210L,236L,278L,287L,329L,362L,366L,399L,430L,434L,451L,477L,488L,508L,531L,533L,542L)
如果我们计算五位数摘要: 最小值是30,最大值:542,中位数:(287 + 329)/ 2 = 308 ...这很容易!
- Q1是子集[30,49,105,.... 287]的中位数,长度为14-> Q1 = [178 + 185] / 2 = 181.5
- Q3“”“” [329,362,...,542] = [451 + 451] / 2 = 451
现在,如果我们使用功能summary(dataset)
进行检查...,我们将得到:
Min. 1st Qu. Median Mean 3rd Qu. Max.
30.0 183.2 308.0 309.7 451.0 542.0
为什么我们得到不同的Q1?函数summary
如何计算Q1?
解决方法
(至少)有九种方法来计算分位数:请参阅?quantile
。对于此数据集,使用9种方法得出6个独特的结果:9个方法中有2个给出的答案为181.5 ...
res <- sapply(1:9,function(t) quantile(x,0.25,type=t))
names(res) <- 1:9
sort(res)
## 1 3 4 6 8 9 2 5
## 178.0000 178.0000 178.0000 179.7500 180.9167 181.0625 181.5000 181.5000
## 7
## 183.2500
R中的默认方法是“类型7”,该类型为183.25(summary
中的值以较低的精度打印,因此显示为183.2)。