Try this: > aggregate(myframe[4], myframe[1:3], min) factor1 factor2 factor3 y 1 1 a x 1 2 2 a x 9 3 1 b x 5 4 2 b x 13 5 1 a y 3 6 2 a y 11 7 1 b y 7 8 2 b y 15
On Mon, Jan 11, 2010 at 7:58 PM, JustinNabble <justinmmcgr...@hotmail.com> wrote: > > 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-tp1011745p1011745.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org 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. > ______________________________________________ R-help@r-project.org 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.