[R] different interface to by (tapply)?
Erik Iverson
eriki at ccbr.umn.edu
Mon Aug 30 16:52:34 CEST 2010
I can definitely recommend the "plyr" package for these sorts of
operations.
http://had.co.nz/plyr/
ivo welch 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.welch at brown.edu, ivo.welch at gmail.com)
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list