Cumulative data in R

I am looking for a simple example of how to use aggregate and calculate facilities in R.

Let's say I have the following data frame:

 AB 100 85 200 95 300 110 400 105 

And I want to calculate the average values ​​for some ranges with the following result:

 RANGE MEAN 100-200 90 300-400 107.5 

How do I do this, cast() or aggregate() ?

+4
source share
3 answers

Assuming your data frame has the name "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 

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 
+14
source

Here is a basic example of using aggregate .

 > foo = data.frame(A=c(100,200,300,400),B=c(85,95,110,105)) > aggregate(foo$B,by=list(foo$A<250),FUN=mean) Group.1 B 1 FALSE 107.5 2 TRUE 90.0 > 
+3
source

Or the same with cut and tapply

  foo <- data.frame(A=c(100,200,300,400),B=c(85,95,110,105)) tapply(foo$B, cut(foo$A, breaks=seq(0, 400, 200)), mean) (0,200] (200,400] 90.0 107.5 
+2
source

All Articles