[R] ave and grouping

Gabor Grothendieck ggrothendieck at gmail.com
Mon Mar 2 14:01:56 CET 2009


Try performing ave over the indexes rather than over extra itself:

sleep$newcol <-
  with(sleep, ave(1:nrow(sleep), group, FUN = function(ix) extra[b[ix][1]]))

On Mon, Mar 2, 2009 at 4:28 AM, Patrick Hausmann
<Patrick.Hausmann at uni-bremen.de> wrote:
> Dear list,
>
> # I have a DF like this:
> sleep$b   <- c(rep(8,10), rep(9,10))
> sleep$me  <- with(sleep, ave(extra, group, FUN = mean))
> sleep
>
> # I would like to create a new variable
> # holding the b-th value of group 1 and 2.
>
> # This is not what I want, it takes always the '8' from group '1'
> # and not the '9'
> sleep$gr  <- with(sleep, ave(extra, group, FUN = function(x) x[ b[1] ]))
> sleep
>
> Thanks for any help!
> Patrick
>
> ______________________________________________
> 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