使用波浪号公式获取箱线图的摘要

Get summary of boxplot with tilde formular

我正在尝试获取箱线图的值,但在使用波浪号公式时无法正常工作。

我觉得这只是一个简单的问题,但我使用错误的热量来寻找答案...


这是我尝试过的:

numbers <- c(6, 1, 1, 1, 3, 3, 2, 3, 13, 13, 4, 7, 38, 1, 12, 9, 4, 65, 9, 23)
groups <- c("A", "B", "D", "E", "F", "G", "B", "C", "D", "E", "F", "A", "B", "C", "D", "E", "F", "A", "B", "D")
boxplot(numbers~groups)
summary(numbers~groups)

我刚得到一个输出

 Length   Class    Mode 
      3 formula    call

如何获取箱线图的值(例如最小值、第一区中值等)

输出应如下所示:

     A            B        (...)
 Min.   : ?   Min.   : ?   (...) 
 1st Qu.: ?   1st Qu.: ?   (...)
 Median : ?   Median : ?   (...)
 Mean   : ?   Mean   : ?   (...)
 3rd Qu.: ?   3rd Qu.: ?   (...)
 Max.   : ?   Max.   : ?   (...)

我实际上不知道您是否可以在 summary 命令中使用波浪号运算符来执行此操作。 但是还有其他选择,例如 tapply:

tapply(numbers,groups,summary)

或者 Psych 包中的 describeBy 函数:

# install.packages("psych")
library("psych")
describeBy(numbers,groups,mat=TRUE)

输出:

   item group1 vars n      mean         sd median   trimmed    mad min max range        skew
11    1      A    1 3 26.000000 33.7786915    7.0 26.000000 1.4826   6  65    59  0.38452071
12    2      B    1 4 12.500000 17.3685540    5.5 12.500000 5.9304   1  38    37  0.66132091
13    3      C    1 2  2.000000  1.4142136    2.0  2.000000 1.4826   1   3     2  0.00000000
14    4      D    1 4 12.250000  8.9953692   12.5 12.250000 8.1543   1  23    22 -0.06221018
15    5      E    1 3  7.666667  6.1101009    9.0  7.666667 5.9304   1  13    12 -0.20782656
16    6      F    1 3  3.666667  0.5773503    4.0  3.666667 0.0000   3   4     1 -0.38490018
17    7      G    1 1  3.000000         NA    3.0  3.000000 0.0000   3   3     0          NA
    kurtosis         se
11 -2.333333 19.5021366
12 -1.756576  8.6842770
13 -2.750000  1.0000000
14 -1.878463  4.4976846
15 -2.333333  3.5276684
16 -2.333333  0.3333333
17        NA         NA

尝试使用聚合函数

aggregate(numbers,list(groups),summary)

      Group.1 x.Min. x.1st Qu. x.Median x.Mean x.3rd Qu. x.Max.
1       A  6.000     6.500    7.000 26.000    36.000 65.000
2       B  1.000     1.750    5.500 12.500    16.250 38.000
3       C  1.000     1.500    2.000  2.000     2.500  3.000
4       D  1.000     9.250   12.500 12.250    15.500 23.000
5       E  1.000     5.000    9.000  7.667    11.000 13.000
6       F  3.000     3.500    4.000  3.667     4.000  4.000
7       G  3.000     3.000    3.000  3.000     3.000  3.000

数据在箱线图函数中。如果将其保存为一个对象,它将包含矩阵中的所有统计信息。

bp <- boxplot(numbers~groups)
bp$stats

     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]  6.0  1.0    1  1.0    1  3.0    3
[2,]  6.5  1.5    1  6.5    5  3.5    3
[3,]  7.0  5.5    2 12.5    9  4.0    3
[4,] 36.0 23.5    3 18.0   11  4.0    3
[5,] 65.0 38.0    3 23.0   13  4.0    3

在箱线图的帮助下,您可以看到它包含一个组件列表,其中一个组件包含您需要的信息。

stats a matrix, each column contains the extreme of the lower whisker, the lower hinge, the median, the upper hinge and the extreme of the upper whisker for one group/plot. If all the inputs have the same class attribute, so will this component.

函数 fivenum

计算了相同的统计数据