[R] search algorithm

Don MacQueen macq at llnl.gov
Mon Feb 13 16:38:42 CET 2006


There is a function in the Hmisc package that will help.

Example:

>  require(Hmisc)
>  x <- sort(runif(10))
>  x
  [1] 0.1225542 0.1620869 0.2197772 0.3187375 0.5498879 0.5644445 
0.5812717 0.7380532 0.8187384 0.9063713
>  whichClosest(x,.41)
[1] 4
>  x[4]
[1] 0.3187375

Or for your matrix (yourmat), this should work (but I haven't tested it)

    yourmat[ whichClosest(yourmat[,'X'] , -0.6523) , 'Y']

-Don

At 1:30 PM +0100 2/13/06, Ita.Cirovic-Donev at hypo-alpe-adria.com wrote:
>Hi!
>
>I have a problem of finding a specific value in a column. For example, I
>have a matrix with say 2 columns
>
>            X                       Y
>1    -2.0341602   9.036689e-05
>2    -1.4287230   1.807338e-04
>3    -1.1194402   2.711007e-04
>4    -1.0327582   3.614676e-04
>5    -0.8130556   4.518344e-04
>6    -0.7138212   5.422013e-04
>7    -0.6634425   6.325682e-04
>8    -0.6512083   7.229351e-04
>9    -0.6176286   8.133020e-04
>10  -0.5897241    9.036689e-04
>
>Now if I have some value of x=-0.6523. I need to find a value in the X
>column  that is the closest to my value of x then read off the row number
>and then take the corresponding value in column Y. What I am not sure is
>how to do the first search where I would search by decimal places and take
>the smallest absolute distance between the numbers. For example if he finds
>the first value which is correct in this case - and then 0 and then 6 and
>then 5 but now there is no 2 for that specific decimal place so he would
>calculate the distance between the one before and the one after and see
>which one is smaller. For that which is smaller would be the final X value.
>Can someone please give me a hint on how to proceed. Thanks.
>
>______________________________________________
>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


-- 
--------------------------------------
Don MacQueen
Environmental Protection Department
Lawrence Livermore National Laboratory
Livermore, CA, USA




More information about the R-help mailing list