On 22-11-2012, at 18:08, TheRealJimShady wrote:

> Hi,
> 
> First post here. Grateful for any help you can give. I have data which looks
> like this:
> 
> id    time    x
> 1   12:01    5
> 1   12:02   14
> 1   12:03   6
> 1   12:04   3
> 2   12:01   98
> 2   12:02   23
> 2   12:03   1
> 2   12:04   4
> 3   12:01   5
> 3   12:02   65
> 3   12:03   23
> 3   12:04   23
> 
> But I want to add a column which is the cumulative sum of X, but only by id.
> I've used cumsum before, but not in this way. So the result should be
> something like:
> 
> id       time      x        cumsum
> 1      12:01       5        5
> 1      12:02      14      19 
> 1      12:03      6         25
> 1      12:04      3         28
> 2      12:01      98       98  
> 2      12:02      23       121
> 2      12:03      1         122
> 2      12:04      4         126
> 3      12:01      5          5
> 3      12:02      65       70
> 3      12:03      23       93 
> 3      12:04      23       116
> 
> Any ideas please?


Assuming your data are in a dataframe named df this should do what you want

df[,"cumsum"] <- ave(df$x,by=df$id, FUN=cumsum)


Berend

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to