On Fri, Apr 20, 2012 at 2:48 PM, Ben quant <ccqu...@gmail.com> wrote: > > Hello, > > If the exact value does not exist in the vector, can I still get at the > intersections? Is there a simple way to do this and avoid looping? Seems > like there would be a simple R function to do this... > > Example: > vec <- c(5,4,3,2,3,4,5) > vec > [1] 5 4 3 2 3 4 5 > intersect(vec,2.5) > numeric(0) > > I want to get: > 2.5 and 2.5
You want to get what? How many times the line crosses 2.5? That's easy: vec = c(5,4,3,2,3,4,5) query = 2.5 n = length(vec) v1 = vec[-1] v2 = vec[-n]; # this tells you where the line crosses your query going up crossesUp = which(v2 < query & v1 > query) # this tells you where the line crosses your query going down crossesDown = which(v2 > query & v1 < query) numberOfCrossings = length(crossesUp) + length(crossesDown) HTH Peter ______________________________________________ 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.