[R] Merging by() results back into original data frame?
Thomas Lumley
tlumley at uw.edu
Tue Mar 22 00:09:28 CET 2011
On Tue, Mar 22, 2011 at 11:42 AM, ivo welch <ivowel at gmail.com> wrote:
> dear R experts---I am trying to figure out what the recommended way is
> to merge by() results back into the original data frame. for example,
> I want to have a flag that tells me whether a particular row contains
> the maximum for its group.
>
> d <- data.frame(group=as.factor(rep(1:3,each=3)), val=rnorm(9))
> highestvals <- by( d, d$group, function(d)(max(d$val)) )
>
> ## and now? iterate over levels( d$group ) ? how do I merge
> highestvals back into d?
The easiest approach is probably to use ave() instead of by().
Otherwise match() will tell you where to put each number.
-thomas
--
Thomas Lumley
Professor of Biostatistics
University of Auckland
More information about the R-help
mailing list