Try this: as.data.frame(by( indf, indf$charid, function(x) c(m=mean(x), s=sd(x)) ))
On Mon, Aug 30, 2010 at 10:19 AM, ivo welch <ivo.we...@gmail.com> wrote: > dear R experts: > > has someone written a function that returns the results of by() as a > data frame? of course, this can work only if the output of the > function that is an argument to by() is a numerical vector. > presumably, what is now names(byobject) would become a column in the > data frame, and the by object's list elements would become columns. > it's a little bit like flattening the by() output object (so that the > name of the list item and its contents become the same row), and > having the right names for the columns. I don't know how to do this > quickly in the R way. (Doing it slowly, e.g., with a for loop over > the list of vectors, is easy, but would not make a nice function for > me to use often.) > > for example, lets say my by() output is currently > > by( indf, indf$charid, function(x) c(m=mean(x), s=sd(x)) ) > > $`A` > [1] 2 3 > $`B` > [2] 4 5 > > then the revised by() would instead produce > > charid m s > A 2 3 > B 4 5 > > working with data frames is often more intuitive than working with the > output of by(). the R wizards are probably chuckling now about how > easy this is... > > regards, > > /iaw > > ---- > Ivo Welch (ivo.we...@brown.edu, ivo.we...@gmail.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. > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
______________________________________________ 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.