R 计算分位数错误或不同?

R calculates quantile wrong or different?

我发现一篇文章提供了计算分位数的算法,而 R 显然没有遵循那篇文章。

文章是: https://www-users.york.ac.uk/~mb55/intro/quantile.htm

在 R 中,我有以下代码:

nv<-c(10,20,30,40)
quantile(nv)
  0%  25%  50%  75% 100% 
10.0 17.5 25.0 32.5 40.0

不过,75%结果的分位数好像是错误的 根据文章,公式为:

i = q(n+1) 

在我的例子中 (75%) q=0.75 和 n=4(我的组合中有 4 个观察值)

X_j + (X_j+1 - X_j) times (i - j) 

这意味着它应该是:

30 + (40-30)*(3.75-3) = 37.5 而不是 32.5

我很难认为是 R 弄错了。

我在这里错过了什么?

谢谢。

如果您查看 quantile 的帮助页面:

?quantile

您将看到分位数可以用不同的方式计算,可以使用 type = 参数指定,使用 1-9 的整数。

类型 6 给出了您期望的结果:

quantile(c(10, 20, 30, 40), type = 6)

  0%  25%  50%  75% 100% 
10.0 12.5 25.0 37.5 40.0