See ?split and ?unsplit. Data <- read.table(textConnection("variable Year value EC01 2005 5 EC01 2006 10 AAO1 2005 2 AAO1 2006 4"),header=T)
Datalist <-split(Data,Data$variable) resultlist <- lapply(Datalist,function(x){ x$cumul <- cumsum(x$value) return(x) }) result <- unsplit(resultlist,Data$variable) result variable Year value cumul 1 EC01 2005 5 5 2 EC01 2006 10 15 3 AAO1 2005 2 2 4 AAO1 2006 4 6 On a side note: I've used this construction now for a number of problems. Some could be better solved using more specific functions (e.g. ave() for adding a column with means for example). I'm not sure however this is the most optimal approach to applying a function to subsets of a dataframe and adding the result of that function as an extra variable. Anybody care to elaborate on how the R masters had it in mind? Cheers Joris On Thu, Jun 3, 2010 at 5:58 PM, n.via...@libero.it <n.via...@libero.it>wrote: > > Dear list, > I have a problem with the cumsum function. > I have a data frame like the following one > variable Year value > EC01 2005 5 > > EC01 2006 10 > > AAO1 2005 2 > > AAO1 2006 4 > what I would like to obtain is > variable Year value cumsum > > > EC01 2005 5 5 > > > EC01 2006 10 15 > > > AAO1 2005 2 2 > > > AAO1 2006 4 6 > > > if I use the by function or the aggregate function the result is a list or > something else, what I want is a data frame as I showed above... > anyone knows how to get it??? > THANKS A LOT > > > > > > [[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. > -- Joris Meys Statistical Consultant Ghent University Faculty of Bioscience Engineering Department of Applied mathematics, biometrics and process control Coupure Links 653 B-9000 Gent tel : +32 9 264 59 87 joris.m...@ugent.be ------------------------------- Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php [[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.