-----Original Message-----
From: r-help-bounces at r-project.org
[mailto:r-help-bounces at r-project.org] On Behalf Of JustinNabble
Sent: Tuesday, 12 January 2010 1:58 p.m.
To: r-help at r-project.org
Subject: [R] How to get minimum value by group
I'd like to get a long data set of minimum values from groups
in another data set.
The following almost does what I want. (Note, I'm using the
word factor differently from it's meaning in R; bad choice of words)
myframe = data.frame(factor1 = rep(1:2,each=8), factor2 =
rep(c("a","b"),each=4, times=2), factor3 =
rep(c("x","y"),each=2, times=4),
y=1:16)
attach(myframe)
minimums = by(y, list(factor1, factor2,factor3), min)
detach(myframe)
The problem is that "minimums" is object of class "by", which
looks like some kind of array with the number of dimension
equal to the number of factors. I just want two dimensions
though, with factors in columns. I can't figure out how to
reformat it to something like this:
factor1 factor2 factor2 y
1 a x 1
2 a x 9
1 b x 5
...
I could make nested for loops, but I'd like something that
will work for an arbitrary number of factors. I've seen some
functions that will rearrange data (e.g. reshape), but they
all seem to require a data.frame to start with.
--
View this message in context:
http://n4.nabble.com/How-to-get-minimum-value-by-group-tp10117
45p1011745.html
Sent from the R help mailing list archive at Nabble.com.