[R] How to calculate the stratified means in a data frame?
Marc Schwartz
MSchwartz at MedAnalytics.com
Thu Nov 18 22:14:53 CET 2004
On Thu, 2004-11-18 at 15:34 -0500, Frank Duan wrote:
> Dear R people,
>
> I have a simple question to ask. Suppose I have a data.frame with two
> variables: one factor (x) and one numeric (y), I want to calculate the
> mean of y for each value of x. Although it's easy to do it within a
> for a loop, I believe there may be a concise way by using some kinds
> of "apply" functions. Could anyone tell me how to do that? Thank you.
>
> Frank
One way is to use by(). Using the 'iris' dataset to get the means for
Sepal.Length by Species:
> with(iris, by(Sepal.Length, Species, mean))
INDICES: setosa
[1] 5.006
------------------------------------------------------
INDICES: versicolor
[1] 5.936
------------------------------------------------------
INDICES: virginica
[1] 6.588
See ?by, also ?tapply and ?aggregate.
Note also the use of with() as a wrapper, in lieu of attach() here.
HTH,
Marc Schwartz
More information about the R-help
mailing list