[R] Getting the groupmean for each person
Christophe Pallier
pallier at lscp.ehess.fr
Mon May 10 10:09:17 CEST 2004
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
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
More information about the R-help
mailing list