[R] find the index of the next largest element in a sorted vector

David Winsemius dwinsemius at comcast.net
Wed Dec 2 16:14:31 CET 2009


On Dec 2, 2009, at 9:34 AM, Hao Cen wrote:

> Hi,
>
> How can I find the index of the next largest element in a sorted  
> vector if
> an element is not found.
>
> for example, searching 2 in c(0,3,4) would return 1 since 2 is not  
> in the
> vector and 0 is the next largest element to 2.
>
> I tried which and match and neither returns such information.
>
>> which(c(0,3,4) == 2)
> integer(0)
>> match(2, c(0,3,4))
> [1] NA

Take a look at these. I changed to problem so that the "answer would  
be in the middle of the sequence.

 > which(c(0,3,4) <= 2)
[1] 1   # but which would have retruned several values if the match  
were in the middle
 > which(c(-3,-1, 0,3,4) <= 2)
[1] 1 2 3
 > tail(which(c(-3,-1,0,3,4) <= 2),1)
[1] 3  # the desired index

--

David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list