bartjoosen wrote: > How about: > > tapply(dat$x1,dat$subject,function(x) cumsum(x)) > which gives you a list for each subject. > > this can be converted to a vector: > do.call("c",tapply(dat$x1,dat$subject,function(x) cumsum(x))) > > So if your data frame is ordered for your subjects: > > cbind(your.data.frame,do.call("c",tapply(dat$x1,dat$subject,function(x) > cumsum(x)))) > >
Sounds like a job for the eternally overlookked ave() function: with(dat, ave(x1, subject, cumsum)) -- O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ 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.