[R] get statistics by group

Friedrich Leisch Friedrich.Leisch at ci.tuwien.ac.at
Thu Mar 15 13:52:38 CET 2001


>>>>> On Thu, 15 Mar 2001 09:09:29 +0000 (GMT),
>>>>> Bill Simpson (BS) wrote:

  > On Wed, 14 Mar 2001, Yu-Ling Wu wrote:
  >> Thanks, it's helpful.
  >> I'm wondering how to make the output look better.
  >> Right now, I got the output look like this:
  >> 
  >> =======================================
  >> $"apple"
  >> Fruit          Quty
  >> apple        :   72   Min.   :  12.00  
  >> banana       :    0   1st Qu.:  14.00  
  >> orange       :    0   Median :  22.00  
  >> cherry       :    0   Mean   :  25.00  
  >> mengo        :    0   3rd Qu.:  42.00  
  >> pineapple    :    0   Max.   :  70.00  
  >> (Other)       :    0                   
  >> 
  >> 
  >> $"banana"
  >> Fruit          Quty
  >> banana       :   37   Min.   :  10.00  
  >> apple        :    0   1st Qu.:  13.00  
  >> orange       :    0   Median :  18.00  
  >> cherry       :    0   Mean   :  19.00  
  >> mengo        :    0   3rd Qu.:  32.00  
  >> pineapple    :    0   Max.   :  65.00  
  >> (Other)       :    0                   
  >> 
  >> ......and so on........
  >> 
  >> =======================================
  >> 
  >> 
  >> How to make it look like below and dilimited by Tab?
  >> 
  >> 
  >> =======================================
  >> min   max  avg  median count
  >> apple   12     70   25     22   72
  >> banana  10     65   19     18   37
  >> orange  19     50   27     25   52
  >> 
  >> ....... and so on........
  >> 
  >> =======================================
  > You are aiming pretty high for a newbie!
  > Do you expect to be able to reformat the output of canned stats programs
  > like SPSS or SAS?

  > The short answer is that it is a lot of work to get R to put the results
  > in the format you want.

ah, not really: a quick a dirty way (probably there are much shorter
and more elegant ways):

## get some example data
> x <- sample(1:20, 100, re=T)
> y <- sample(letters[1:3], 100, re=T)

## and here we go
> foo <- NULL
> z <- tapply(x, y, quantile)
> invisible(sapply(z, function(a) foo <<- rbind(foo, a)))
> rownames(foo) <- names(z)
> foo
  0% 25% 50%   75% 100%
a  1   4   9 16.00   20
b  1   6  10 17.75   20
c  1   6   9 16.00   20


.f

-- 
-------------------------------------------------------------------
                        Friedrich  Leisch 
Institut für Statistik                     Tel: (+43 1) 58801 10715
Technische Universität Wien                Fax: (+43 1) 58801 10798
Wiedner Hauptstraße 8-10/1071      Friedrich.Leisch at ci.tuwien.ac.at
A-1040 Wien, Austria             http://www.ci.tuwien.ac.at/~leisch
-------------------------------------------------------------------

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list