Is there a build in function to create an index for tapply or by given a a numeric vector x an a vector of breaks? What I want to do is: x <- 1:100 breaks <- c(0,10,20,50,99,110) y <- rep(0,length(x)) for(i in 2:length(breaks)){ y[which(x>breaks[i-1] & x <= breaks[i])] <- i } by(x,y,sum) but I find the code especially th for loop unneRving. -- Witold Eryk Wolski [[alternative HTML version deleted]]
Hello, Try using ?cut y2 <- cut(x, breaks) by(x, y2, sum) Hope this helps, Rui Barradas Em 27-06-2013 09:24, Witold E Wolski escreveu:> Is there a build in function to create an index for tapply or by given a > a numeric vector x an a vector of breaks? > > What I want to do is: > > x <- 1:100 > breaks <- c(0,10,20,50,99,110) > > y <- rep(0,length(x)) > for(i in 2:length(breaks)){ > y[which(x>breaks[i-1] & x <= breaks[i])] <- i > } > > by(x,y,sum) > > but I find the code especially th for loop unneRving. > >
Hi, Witold, take a look at ?findIntervals It might give want you need. Hth -- Gerrit On Thu, 27 Jun 2013, Witold E Wolski wrote:> Is there a build in function to create an index for tapply or by given a > a numeric vector x an a vector of breaks? > > What I want to do is: > > x <- 1:100 > breaks <- c(0,10,20,50,99,110) > > y <- rep(0,length(x)) > for(i in 2:length(breaks)){ > y[which(x>breaks[i-1] & x <= breaks[i])] <- i > } > > by(x,y,sum) > > but I find the code especially th for loop unneRving. > > > -- > Witold Eryk Wolski > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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.