[R] Basic help needed: group bunch of lines in a list (matrix)

Sundar Dorai-Raj sundar.dorai-raj at pdf.com
Tue Sep 12 23:03:01 CEST 2006



Emmanuel Levy said the following on 9/12/2006 3:50 PM:
> Hello,
> 
> I'd like to group the lines of a matrix so that:
> A 1.0 200
> A 3.0 800
> A 2.0 200
> B 0.5 20
> B 0.9 50
> C 5.0 70
> 
> Would give:
> A 2.0 400
> B 0.7 35
> C 5.0 70
> 
> So all lines corresponding to a letter (level), become a single line
> where all the values of each column are averaged.
> 
> I've done that with a loop but it doesn't sound right (it is very
> slow). I imagine there is a
> sort of "apply" shortcut but I can't figure it out.
> 
> Please note that it is not exactly a matrix I'm using, the function
> "typeof" tells me it's a list, however I access to it like it was a
> matrix.
> 
> Could someone help me with the right function to use, a help topic or
> a piece of code?
> 
> Thanks,
> 
>   Emmanuel
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.


Try aggregate:

aggregate(x[1], x[2:3], mean)

where `x' is your data.frame.

--sundar



More information about the R-help mailing list