Assuming your data frame has the name "x":
aggregate(x$B, list(cut(x$A, breaks=c(0, 200, 400))), mean)
Using "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
source share