在R中,如何将摘要合并在一起?

7

假设我有5组数据的总结。如何将这些数字提取出来,或者将总结合并为1个而不是5个?

       V1               V2               V3               V4        
 Min.   : 670.2   Min.   : 682.3   Min.   : 690.7   Min.   : 637.6  
 1st Qu.: 739.9   1st Qu.: 737.2   1st Qu.: 707.7   1st Qu.: 690.7  
 Median : 838.6   Median : 798.6   Median : 748.3   Median : 748.3  
 Mean   : 886.7   Mean   : 871.0   Mean   : 869.6   Mean   : 865.4  
 3rd Qu.:1076.8   3rd Qu.:1027.6   3rd Qu.:1070.0   3rd Qu.: 960.8  
 Max.   :1107.8   Max.   :1109.3   Max.   :1131.3   Max.   :1289.6  
       V5        
 Min.   : 637.6  
 1st Qu.: 690.7  
 Median : 748.3  
 Mean   : 924.3  
 3rd Qu.: 960.8  
 Max.   :1584.3  

如何让一个表格看起来像这样:
        v1  v2 v3 v4 v5
  Min.   :   
 1st Qu.:   
 Median : 
 Mean   :   
 3rd Qu.:   
 Max.   :  

或者如何将这些数字保存为向量,以便我可以使用矩阵生成表格。

请正确格式化您的问题。此外,如果您提供一些示例数据,回答问题会更容易。 - Shane
我没有教过这个,但我觉得这是一个好主意。我总是觉得summary()太长了。 - Etienne Racine
2个回答

7

看起来你的数据是在一个数据框或矩阵中。如果是这样,你可以做以下操作:

> df <- data.frame(a=1:50, b=3:52, c=rnorm(500))
> apply(df, 2, summary)
           a    b         c
Min.     1.0  3.0 -3.724000
1st Qu. 13.0 15.0 -0.733000
Median  25.5 27.5 -0.004868
Mean    25.5 27.5 -0.033950
3rd Qu. 38.0 40.0  0.580800
Max.    50.0 52.0  2.844000

请问在 apply() 函数中的 '2' 是做什么用的?谢谢。 - Zawir Amin
1
@ZawirAmin 告诉 apply 沿列而不是行进行扫描。 - Ken Williams

6
您可以将摘要输出转换为矩阵,然后绑定它们:
a <- 1:50
b <- 3:53 
c <- rnorm(500)
cbind(as.matrix(summary(a)), as.matrix(summary(b)), as.matrix(summary(c)))

或者,您可以将它们组合成一个列表,并使用apply函数(或plyr):

library(plyr)
ldply(list(a, b, c), summary)

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