如何使用describe.by生成五个数字摘要

时间:2013-12-10 15:23:35

标签: r aggregate summary describe describe.by

我想知道如何根据describeBy()提供的summary()函数调用五个数字的统计数据。在调用library(psych)之后,当前函数报告最小值,最大值和中值,但不报告第25和第75四分位数的统计数据。

attach(mtcars)
describeBy(mpg, gear)

var  n  mean   sd median trimmed  mad  min  max range  skew kurtosis   se 

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

还有一个专门针对五个号码的内置基本功能,不出所料地称为:fivenum

aggregate(mpg ~ gear, data=mtcars, fivenum)
  gear mpg.1 mpg.2 mpg.3 mpg.4 mpg.5
1    3 10.40 14.50 15.50 18.40 21.50
2    4 17.80 21.00 22.80 28.85 33.90
3    5 15.00 15.80 19.70 26.00 30.40

修改 要回答评论中的后续问题(正如我解释的那样),您可以使用公式中的.来指定所有其他列

aggregate(.~gear, data=mtcars, fivenum)
#too wide to print here

或者,如果您只想要fivenum所有没有齿轮分割的列,那么就是:

    apply(mtcars, 2,fivenum)
       mpg cyl   disp  hp  drat     wt   qsec vs am gear carb
[1,] 10.40   4  71.10  52 2.760 1.5130 14.500  0  0    3    1
[2,] 15.35   4 120.65  96 3.080 2.5425 16.885  0  0    3    2
[3,] 19.20   6 196.30 123 3.695 3.3250 17.710  0  0    4    2
[4,] 22.80   8 334.00 180 3.920 3.6500 18.900  1  1    4    4
[5,] 33.90   8 472.00 335 4.930 5.4240 22.900  1  1    5    8

答案 1 :(得分:0)

更简单:您只需添加 describeBy 参数 quant=c(0.25,0.75))