You didn't show us what you did to get the results you didn't want. I suspect you did not compute groupId <- cumsum(c(TRUE, year[-1] != year[-length(year)])) and aggregate by groupId instead of by year. (Note that groupId counts how many changes there are in the sequence of years.)
By the way, package plyr's functions do what aggregate() does and more and you may prefer them. > d <- data.frame( year = c(2008, 2008, 2008, 2009, 2009, 2008, 2008), sales = c( 1, 2, 4, 8, 16, 32, 64), costs = c( 1, 3, 27, 81, 243, 729, 2187)) > d$groupId <- with(d, cumsum(c(TRUE, year[-1] != year[-length(year)]))) > d year sales costs groupId 1 2008 1 1 1 2 2008 2 3 1 3 2008 4 27 1 4 2009 8 81 2 5 2009 16 243 2 6 2008 32 729 3 7 2008 64 2187 3 > ddply(d, .(groupId), function(di)with(di, c(year=year[1], sales=sum(sales), costs=sum(costs), n=length(year)))) groupId year sales costs n 1 1 2008 7 31 3 2 2 2009 24 324 2 3 3 2008 96 2916 2 Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of Andrew Gaska > Sent: Monday, January 09, 2012 6:07 AM > To: r-help@r-project.org > Subject: Re: [R] Summing rows by years (each time separately) > > Thanks for your answer! > > There is one thing I could not find in aggregate(): > > I want to have it a sum for each group of 2008,2009 and 2010. In > aggregate() I can sum all the rows that have a rowname 2008, all the rows > that have a rowname 2009 and all the rows that have a rowname 2010. > > But I want to have it summed separately each time a new group starts, so not > like this: > > 2008 24 20 16 > 2009 19 12 17 > 2010 16 19 13 > > but like this: > > 2008 15 12 10 > 2009 9 3 7 > 2010 10 14 10 > 2008 9 8 6 > 2009 10 9 10 > 2010 6 5 3 > > > -- > View this message in context: > http://r.789695.n4.nabble.com/Summing-rows-by-years-each-time- > separately-tp4276428p4278550.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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.