[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