# [R] cumsum and subsets of a data frame?

Thomas Lumley tlumley at u.washington.edu
Wed Jul 24 17:36:36 CEST 2002

```On 24 Jul 2002, Michael A. Miller wrote:

> I have a question about using cumsum on subsets of a data frame.
> Suppose I have a frame that looks something like this
>
> > tmp
>        f x  y
> 1   left 1  0
> 2   left 2  0
> 3   left 3  9
> 4   left 4 10
> 5   left 5 23
> 6   left 6 45
> 7   left 7 13
> 8   left 8  2
> 9   left 9  6
> 10 right 1 10
> 11 right 2 26
> 12 right 3  9
> 13 right 4 50
> 14 right 5 78
> 15 right 6 20
> 16 right 7  7
> 17 right 8 20
> 18 right 9 19
>
> I'm plotting things like this will lattice
>
> > library(lattice)
> > xyplot(y ~ x | f, data=tmp)
>
> If I plot the cumsum with xyplot( cumsum(y) ~ x | f, data=tmp),
> it is summed across the values of the factor f.  Can anyone
> suggest a way to calculate the cumulative sum of y in this data
> frame such that it is reset for each value of f?  The resulting
> frame would look like this:
>

Use split and unsplit
Eg
> df<-data.frame(y=runif(100),f=rep(1:5,rep(20,5)))
> df\$z<-unsplit(lapply(split(df\$y,df\$f),cumsum),df\$f)

-thomas

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```