Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IN r, how to combine the summary together

Tags:

r

summary

say i have 5 summary for 5 sets of data. how can i get those number out or combine the summary in to 1 rather than 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  

how can i have 1 table looks like

        v1  v2 v3 v4 v5
  Min.   :   
 1st Qu.:   
 Median : 
 Mean   :   
 3rd Qu.:   
 Max.   :  

or how to save those number as vector so i can use matrix to generate a table

like image 702
alex Avatar asked Apr 19 '10 16:04

alex


2 Answers

It looks like your data is in a data frame or matrix. If so, you can do the following:

> 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
like image 124
Ken Williams Avatar answered Sep 22 '22 05:09

Ken Williams


You can convert the summary output into a matrix and then bind them:

a <- 1:50
b <- 3:53 
c <- rnorm(500)
cbind(as.matrix(summary(a)), as.matrix(summary(b)), as.matrix(summary(c)))

Alternatively, you can combine them into a list and use an apply function (or plyr):

library(plyr)
ldply(list(a, b, c), summary)
like image 41
Shane Avatar answered Sep 23 '22 05:09

Shane