Aggregate data in R

aggregate, r

Solution

Assuming your data frame is named "x":

aggregate(x$B, list(cut(x$A, breaks=c(0, 200, 400))), mean)
#     Group.1     x
# 1   (0,200]  90.0
# 2 (200,400] 107.5

With "data.table", you can do the following:

library(data.table)
as.data.table(x)[, .(RANGE = mean(B)), by = .(MEAN = cut(A, c(0, 200, 400)))]
#         MEAN RANGE
# 1:   (0,200]  90.0
# 2: (200,400] 107.5

Problem

I'm looking for a dead simple example on how to use `aggregate` and calculate means in R. Say, I have the following data frame: ``` A B 100 85 200 95 300 110 400 105 ``` And I want to calculate the mean values for some ranges with the following result: ``` RANGE MEAN 100-200 90 300-400 107.5 ``` How would I go about doing this, `cast()` or `aggregate()`?

Original source