On Jun 3, 2011, at 17:42 , Carl Witthoft wrote: > Hi, > I feel dumb even asking, but isn't there an R function somewhere that I can > use to reduce the resolution of a vector (or matrix) by summing terms in > uniform blocks? That is, for a vector X, reduce it to some X.short as > X.short[1]<- sum(X[1:10]); X.short[2] <- sum(X[11:20]), and so on. > > I did the following: > > X.short<-colSums(matrix(X,16,2048/16)) # X is of length 2048 > > but surely there's already a function somewhere that does this in a more > general case? And, my approach will get a bit painful for reducing a matrix > in both dimensions.
aggregate.ts, but then you need to convert to "ts" and back. I'd likely go for tapply(X, (seq_along(X) - 1) %/% N, sum) > x [1] 1 1 0 -1 1 -1 0 0 1 -2 1 0 0 -1 1 > as.numeric(aggregate(ts(x, frequency=3), 1, sum)) [1] 2 -1 1 -1 0 > tapply(x, (seq_along(x) - 1) %/% 3, sum) 0 1 2 3 4 2 -1 1 -1 0 -- Peter Dalgaard Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd....@cbs.dk Priv: pda...@gmail.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.