[R] Getting the groupmean for each person
kjetil@acelerate.com
kjetil at acelerate.com
Mon May 10 12:41:00 CEST 2004
On 10 May 2004 at 10:09, Christophe Pallier wrote:
>
>
> Liaw, Andy wrote:
>
> >Suppose I
> >define the function:
> >
> >fun <- function(x, f) {
> > m <- tapply(x, f, mean)
> > ans <- x - m[match(f, unique(f))]
> > names(ans) <- names(x)
> > ans
> >}
> >
> >
> >
>
> May I ask what is the purpose of match(f,unique(f)) ?
>
> To remove the group means, I have be using:
>
> x-tapply(x,f,mean)[f]
>
> for a while, (and I am now changing to
> x-tapply(x,f,mean)[as.character(f)] because of the peculiarities of
wouldn't
sweep(as.array(x), 1, tapply(x,f,mean)[as.character(f)] , "-")
be more natural?
Kjetil Halvorsen
> indexing named vectors with factors )
>
> The use of tapply(x,f,mean)[match(f,unique(f))] assumes a particular
> order in the result of tapply, no? It seems a bit dangerous to me.
>
>
> Christophe Pallier
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
More information about the R-help
mailing list