如何使用R的summary函数计算第n个百分位数?

32

我可以使用R的summary函数获取最小值、最大值和百分位数(25、75)。

如何在汇总统计信息中使用summary来获取任意分位数,比如第90个百分位数和第99个百分位数?


1
我认为你不能这样做。使用quantile函数。 - Arun
1
你可以创建自己的 summary 函数,从代码 getS3method( 'summary' , 'default' ) 开始,并更改以 qq <- stats::quantile(object) 开头的三行代码,以输出你想要的分位数.. :) - Anthony Damico
1个回答

52

使用quantile函数

quantile(x, c(.90, .99))

例子:

> set.seed(1)
> x <- rnorm(100)
> summary(x)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
-2.2150 -0.4942  0.1139  0.1089  0.6915  2.4020 
> quantile(x, c(.25, .50,  .75, .90, .99))
       25%        50%        75%        90%        99% 
-0.4942425  0.1139092  0.6915454  1.1810651  2.1749017 

12
使用quantile()函数时要小心,因为默认值可能不会给你期望的结果。例如,quantile(x, 0.99)可能大于max(x)。请在文档中了解有关“type”参数的信息。注意:这应该是一条注释,但我没有足够的声望。 - Andre Jones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接