I'm interested in a version of tapply() that operates with shingles instead of factors. For instance:
x <- c(1,1,2,2,3,3) y <- c(1,1,1,0,0,0) s <- shingle(x,intervals=cbind(c(0.5,1.5),c(2.5,3.5))) # the following function should exist! tapply.shingle(x,s,mean) # returns the vector c(0.75,0.25) I've written such a function as follows: tapply.shingle <- function(x,s,fn,...) { result <- c() for(l in levels(s)) { x1 <- x[s > l[1] & s < l[2]] result <- c(result, fn(x1,...)) } result } However, I'm not thrilled with the for() loop, and I don't see any way to generalize this function to handle lists of shingles instead of individual shingles, except to use recursion. Does anyone have any suggestions or thoughts? Many thanks, Roger ______________________________________________ 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.