Imagine I have a data frame with 2 columns
Id Value
12 13
32 3
6022 11
9142 231
12 23
11开发者_运维技巧9 312
...
and I want to get the mean value for each "Id". Do you know of any fast way of doing this?
One possible solution using aggregate
:
aggregate(Value ~ Id, data=tmp, FUN=mean)
Just for completeness basic solution is tapply
:
tapply(data$Value, data$Id, mean)
(or using with
as with(data, tapply(Value, Id, mean))
)
I heart reshape:
cast(x, Id ~ ., mean)
Beyond aggregate, other options include by and ddply (in plyr).
Also by
will do the job, yet the output will be tricky.
精彩评论