try this:

> x <- 1:30
> names(x) <- sample(LETTERS[1:5], 30, TRUE)
>
> x
 B  B  C  E  B  E  E  D  D  A  B  A  D  B  D  C  D  E  B  D  E  B  D  A  B
B  A  B  E  B
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
26 27 28 29 30
> x <- 1:30
> names(x) <- sample(LETTERS[1:5], 30, TRUE)
> x
 C  C  C  A  E  D  D  A  D  C  E  D  D  C  C  D  A  C  D  D  C  E  C  B  A
A  B  C  D  C
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
26 27 28 29 30
> tapply(x, names(x), mean)
       A        B        C        D        E
16.00000 25.50000 15.00000 14.55556 12.66667
>
>



On 2/27/07, David Reiss <dreiss.isb@gmail.com> wrote:
>
> Hi,
> I apologize if this topic has been discussed - I could not figure out
> a good search phrase for this question.
>
> I have a named vector x, with multiple (duplicate) names, and I would
> like to obtain a (shorter) vector with non-duplicate names in which
> the values are the means of the values of the duplicated indexes in x.
> My best (fastest) solution to this was this code:
>
> nms <- names( x )
> x.uniq <- sapply( unique( nms ), function( i ) mean( subtracted[ nms == i
> ] ) )
>
> However, this takes forever on my beefy Mac Pro. Is there a faster way
> to this using pre-written functions in R?
>
> Thanks a lot for any advice.
> -David
>
> ______________________________________________
> R-help@stat.math.ethz.ch 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

	[[alternative HTML version deleted]]

