[R] Subsetting vectors based on condition

J. Hosking jh910 at juno.com
Mon Sep 4 20:34:25 CEST 2006


Mahesh Krishnan wrote:
> Hello,
> 
> I have a question regarding subsetting of vectors. Here's an example of
> what I'm trying to do:
> 
> vect.1 <- c(76,195, 290, 380)
> 
> vect.2 <-  c(63,  95, 133, 170, 215, 253, 285, 299, 325, 375)
> 
> I would like to subset vect.2 so that it has the same length as vect.1,
> and its numbers are the first corresponging higher value compared to
> vect.1.
> 
> The output should be:
> 
>  final.output = (95, 215, 299, NA)
> 
> What is the fastest/most eficient way to accompllish this in R?
> 
> Thanks for the help in advance,
> 
> Mahesh Krishnan
> 
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
> 

 > vect.1 <- c(76,195, 290, 380)
 > vect.2 <-  c(63,  95, 133, 170, 215, 253, 285, 299, 325, 375)
 > vect.2[ findInterval(vect.1,vect.2) + 1 ]
[1]  95 215 299  NA

J. R. M. Hosking



More information about the R-help mailing list