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.