Here is one way of doing it: > x <- read.table(textConnection("site distance var1 var2 + 1 10 1 0 + 1 20 0 1 + 1 30 1 2 + 1 40 3 3 + 1 50 1 4 + 2 10 1 1 + 2 20 2 1 + 2 30 4 1 + 2 40 0 1 + 2 50 1 1 + n1 10 1 1 + n1 20 1 0 + n1 30 1 1 + n1 40 1 0 + n1 50 1 1 "), header=TRUE) > closeAllConnections() > # split by site, compute cumsum of the data columns > x.1 <- lapply(split(x, x$site), function(.site){ + # get the cumsum of data rows (using 3:4 for example) + .cum <- do.call(cbind, lapply(.site[,3:4], cumsum)) + cbind(.site, .cum) + }) > # put back together (you can change the column names > do.call(rbind, x.1) site distance var1 var2 var1 var2 1.1 1 10 1 0 1 0 1.2 1 20 0 1 1 1 1.3 1 30 1 2 2 3 1.4 1 40 3 3 5 6 1.5 1 50 1 4 6 10 2.6 2 10 1 1 1 1 2.7 2 20 2 1 3 2 2.8 2 30 4 1 7 3 2.9 2 40 0 1 7 4 2.10 2 50 1 1 8 5 n1.11 n1 10 1 1 1 1 n1.12 n1 20 1 0 2 1 n1.13 n1 30 1 1 3 2 n1.14 n1 40 1 0 4 2 n1.15 n1 50 1 1 5 3
On Wed, Jun 17, 2009 at 11:48 AM, SEUNG CHEON HONG <seungh...@wisc.edu>wrote: > Dear R-Help List, > > I have a question about data manipulation. I tried to make code myself but > too much for me. I would greatly appreciate your help. > > I have data set consisting of site (from 1 to N1) and distance and there > are several variables (1 to N2) collected from each sampling site. I am > interested in looking at cumulative sums of each variable based on site and > distance like below. > > Can anyone help create function to do the task? The cumulative sum outputs > may not be necessarily combined with original data. It will be better to > have only cumulative sum outputs and indicator variables of interest. > > site distance var1 var(n2) cu.sum.v1 > cu.sum.v(n2) > 1 10 1 0 1 0 > 1 20 0 1 1 1 > 1 30 1 2 2 3 > 1 40 3 3 5 6 > 1 50 1 4 6 10 > 2 10 1 1 1 1 > 2 20 2 1 3 2 > 2 30 4 1 7 3 > 2 40 0 1 7 4 > 2 50 1 1 8 5 > ,,, ,,, ,,, ,,, ,,, > n1 10 1 1 1 1 > n1 20 1 0 2 1 > n1 30 1 1 3 2 > n1 40 1 0 4 2 > n1 50 1 1 5 3 > > > Thank you very much for reading and time!!! > > Steve Hong > > ______________________________________________ > 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<http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? [[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.