In the zoo package, rollapply can do that. > library(zoo) > out <- rollapply(ts(dat), width = 3, by = 3, sum) > out Time Series: Start = 3 End = 9 Frequency = 0.333333333333333 V1 V2 V3 V4 V5 V6 V7 V8 3 1 0 1 1 1 1 1 1 6 1 1 1 1 0 0 1 1 9 2 3 2 3 3 2 3 2
This gives a "ts" class time series result so if you need a data frame result just convert it back: out <- as.data.frame(out) See ?rollapply for more. On Wed, Jul 15, 2009 at 6:03 AM, kelvin lau<kelvin...@yahoo.com> wrote: > > I have following data in a data.csv file separated by space > > 0 0 1 0 0 1 0 1 > 0 0 0 0 0 0 0 0 > 1 0 0 1 1 0 1 0 > 0 0 1 1 0 0 0 0 > 1 1 0 0 0 0 1 1 > 0 0 0 0 0 0 0 0 > 0 1 0 1 1 0 1 0 > 1 1 1 1 1 1 1 1 > 1 1 1 1 1 1 1 1 > etc... > > I wish to calculate the sum of each column for certain number of rows. For > example if I want sum of the data after each 3 rows, it should display > 1 0 1 1 1 1 1 1 > 1 1 1 1 0 0 1 1 > 2 3 2 3 3 2 3 2 > > So far, this is what I have done > xx<-read.table("data.csv",header=FALSE) > ss<-t(apply(xx,2,sum)) # which displayed the sum of all rows > > I tried my best to look for solution on the Internet but so far haven't > managed to find it. I am extremely grateful if someone can point me how to go > about it. Thanks. > > Kelvin > > ______________________________________________ > 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.