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]]