重构 R 汇总函数的输出

Mar*_*tin 3 r summary

是否有一种简单的方法可以更改 R 的汇总函数的输出格式,以便将结果打印在列而不是行中?当您传递摘要数据框时,R 会自动执行此操作。当我传递一个向量时,我想在列中打印汇总统计信息。所以而不是这个:

>summary(vector)

Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
1.000   1.000   2.000   6.699   6.000 559.000 
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

  >summary(vector)

    Min.    1.000
    1st Qu. 1.000 
    Median  2.000  
    Mean    6.699
    3rd Qu. 6.000   
    Max.    559.000
Run Code Online (Sandbox Code Playgroud)

A5C*_*2T1 5

当然。将其视为data.frame

set.seed(1)
x <- sample(30, 100, TRUE)

summary(x)
#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#    1.00   10.00   15.00   16.03   23.25   30.00 
summary(data.frame(x))
#        x        
#  Min.   : 1.00  
#  1st Qu.:10.00  
#  Median :15.00  
#  Mean   :16.03  
#  3rd Qu.:23.25  
#  Max.   :30.00
Run Code Online (Sandbox Code Playgroud)

对于稍微更有用的输出,您可以使用data.frame(unclass(.))

data.frame(val = unclass(summary(x)))
#           val
# Min.     1.00
# 1st Qu. 10.00
# Median  15.00
# Mean    16.03
# 3rd Qu. 23.25
# Max.    30.00
Run Code Online (Sandbox Code Playgroud)

或者你可以使用stack

stack(summary(x))
#   values     ind
# 1   1.00    Min.
# 2  10.00 1st Qu.
# 3  15.00  Median
# 4  16.03    Mean
# 5  23.25 3rd Qu.
# 6  30.00    Max.
Run Code Online (Sandbox Code Playgroud)