Stephen - In version R-2.11.1, I get
aggregate(myd[,c("val")],list(orig=myd$id1),cumsum)
orig x.1 x.2 x.3 1 a -0.62754524 -1.16194135 -0.05975811 2 b 0.21954618 -0.21355521 -0.62970082 3 c -0.30296239 1.44111610 0.30121880
Since myd has several observations for each value of orig, you obviously can't just assign the output of aggregate as a column of myd. Were you thinking of merge(myd,aggregate(myd[,c("val")],list(orig=myd$id1),cumsum)) ? (Note that before version 2.11.1, aggregate *would* fail.)) - Phil Spector Statistical Computing Facility Department of Statistics UC Berkeley spec...@stat.berkeley.edu On Tue, 12 Oct 2010, Bond, Stephen wrote:
Hello everybody, Data is myd <- data.frame(id1=rep(c("a","b","c"),each=3),id2=rep(1:3,3),val=rnorm(9)) I want to get a cumulative sum over each of id1. trying aggregate does not work myd$pcum <- aggregate(myd[,c("val")],list(orig=myd$id1),cumsum) Please suggest a solution. In real the dataframe is huge so looping with for and subsetting is not a great idea (still doable, though). Thank you Stephen B [[alternative HTML version deleted]] ______________________________________________ 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.
______________________________________________ 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.