楼主: 耕耘使者
20228 13

[问答] fivenum()和quantile()的区别? [推广有奖]

贵宾

已卖:5006份资源

学术权威

39%

还不是VIP/贵宾

-

威望
4
论坛币
1811021 个
通用积分
171.7911
学术水平
109 点
热心指数
173 点
信用等级
87 点
经验
93428 点
帖子
4549
精华
0
在线时间
2848 小时
注册时间
2006-4-6
最后登录
2025-7-12

楼主
耕耘使者 发表于 2013-10-4 12:29:32 |AI写论文
50论坛币
原来我以为是一样的,即最小值、下四分位数、中位数、上四分位数、最大值,但一操作才知不同:
> fivenum(x=1:100)
[1]   1.0  25.5  50.5  75.5 100.0
> quantile(x=1:100)
    0%    25%    50%    75%   100%
  1.00  25.75  50.50 75.25 100.00
>
区别在哪儿?

最佳答案

kaifengedu 查看完整内容

这个貌似一两句话还真解释不清楚,你自己看看估计就明白了. 下面是具体的算法:
关键词:quantile quant Five Tile Ant 中位数 最大值

沙发
kaifengedu 发表于 2013-10-4 12:29:33
这个貌似一两句话还真解释不清楚,你自己看看估计就明白了.
下面是具体的算法:
  1. x <- 1:100
  2. n <- length(x)
  3. probs = seq(0, 1, 0.25)
  4. index <- 1 + (n - 1) * probs
  5. lo <- floor(index)
  6. hi <- ceiling(index)
  7. x <- sort(x, partial = unique(c(lo, hi)))
  8. qs <- x[lo]
  9. i <- which(index > lo)
  10. h <- (index - lo)[i]
  11. qs[i] <- (1 - h) * qs[i] + h * x[hi[i]]
  12. qs
  13. quantile(x=1:100)
复制代码
  1. x <- 1:100
  2. n <- length(x)
  3. n4 <- floor((n + 3)/2)/2
  4. d <- c(1, n4, (n + 1)/2, n + 1 - n4, n)
  5. 0.5 * (x[floor(d)] + x[ceiling(d)])
  6. fivenum(x=1:100)
复制代码
已有 3 人评分经验 学术水平 热心指数 信用等级 收起 理由
ltx5151 + 20 根据规定进行奖励
qoiqpwqr + 1 + 1 热心帮助其他会员
耕耘使者 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 20  学术水平 + 2  热心指数 + 2  信用等级 + 1   查看全部评分

藤椅
耕耘使者 发表于 2013-10-4 20:31:38
kaifengedu 发表于 2013-10-4 12:29
这个貌似一两句话还真解释不清楚,你自己看看估计就明白了.
下面是具体的算法:
非常感谢,假期快乐!

板凳
kaifengedu 发表于 2013-10-4 21:17:51
耕耘使者 发表于 2013-10-4 20:31
非常感谢,假期快乐!
互相帮助,互相进步!

报纸
dxystata 发表于 2013-10-4 22:38:09
耕耘使者 发表于 2013-10-4 20:31
非常感谢,假期快乐!
耕耘使者看明白了,解释一下啊!

地板
耕耘使者 发表于 2013-10-5 08:19:39
dxystata 发表于 2013-10-4 22:38
耕耘使者看明白了,解释一下啊!
实话实说,明看明白,我的R功底太浅了。
但是已经知道的是,两个都是求的五个分位点,包括最大值和最小值,只是计算公式不同。

谢谢!

7
求证1加1 发表于 2013-10-5 10:49:54
耕耘使者 发表于 2013-10-5 08:19
实话实说,明看明白,我的R功底太浅了。
但是已经知道的是,两个都是求的五个分位点,包括最大值和最小值 ...
其实概括的说就是前者只是基于中位数的概念,而后者则是完全基于分位数的概念。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
耕耘使者 + 1 + 1 + 1 观点有启发

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

个人主页,欢迎订阅http://chenangliu.info/

8
耕耘使者 发表于 2013-10-5 12:23:10
求证1加1 发表于 2013-10-5 10:49
其实概括的说就是前者只是基于中位数的概念,而后者则是完全基于分位数的概念。
真正明白了。fivenum()只纯中位数概念,验证如下:
> x=c(2,5,10,11,13,20,30)
> fivenum(x)
[1]  2.0  7.5 11.0 16.5 30.0
> x=c(2,5,10,11,13,20,30,35)
> fivenum(x)
[1]  2.0  7.5 12.0 25.0 35.0
非常感谢!

9
求证1加1 发表于 2013-10-5 15:56:29
耕耘使者 发表于 2013-10-5 12:23
真正明白了。fivenum()只纯中位数概念,验证如下:
> x=c(2,5,10,11,13,20,30)
> fivenum(x)
congratulations
个人主页,欢迎订阅http://chenangliu.info/

10
耕耘使者 发表于 2013-10-5 21:11:41
求证1加1 发表于 2013-10-5 15:56
congratulations

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 19:28