it worked! thank you so much!!

On Mon, Jul 27, 2009 at 3:16 PM, Steve Lianoglou <
mailinglist.honeypot@gmail.com> wrote:

> Ahh ..
>
> On Jul 27, 2009, at 6:01 PM, Mehdi Khan wrote:
>
>  Even when choosing a value from the first few rows, it doesn't work. okay
>> here it goes:
>>
>> > rearranged[1:10, 1:5]
>>           x        y band1 VSCAT.001 soiltype
>> 1  -124.3949 40.42468    NA        NA       CD
>> 2  -124.3463 40.27358    NA        NA       CD
>> 3  -124.3357 40.25226    NA        NA       CD
>> 4  -124.3663 40.40241    NA        NA       CD
>> 5  -124.3674 40.49810    NA        NA       CD
>> 6  -124.3083 40.24744    NA       464     <NA>
>> 7  -124.3017 40.31295    NA        NA        D
>> 8  -124.3375 40.47557    NA       464     <NA>
>> 9  -124.2511 40.11697     1        NA     <NA>
>> 10 -124.2532 40.12640     1        NA     <NA>
>>
>> > query<- rearranged$y== 40.42468
>> > rearranged[query,]
>> [1] x         y         band1     VSCAT.001 soiltype
>> <0 rows> (or 0-length row.names)
>>
>
> This isn't working because the numbers you see for y (40.42468) isn't
> precisely what that number is. As I mentioned before you should use an
> "almost.equals" type of search for this scenario. My "%~%" function isn't
> working in your session because that is a function I've defined myself. You
> can of course use it, you just have to define it in your workspace. Paste
> these lines into your workspace (or save them to a file and "source" that
> file into your workspace).
>
> ## === almost.equal functions ====
>
> almost.equal <- function(x, y, tolerance=.Machine$double.eps^0.5) {
>  abs(x - y) < tolerance
> }
>
> "%~%" <- function(x, y) almost.equal(x, y)
>
> ## === end paste ==============
>
> Now you can use %~% once that's in. Let's use the almost.equal function now
> because I don't know if the default tolerance here is too strict (I suspect
> showing the value for rearranged$y[1] will show you more significant digits
> than you're seeing in the table(?))
>
> query <- almost.equal(rearranged$y, 40.42468, tolerance=0.0001)
> rearranged[query,]
>
> This will get you something.
>
>  query<- rearranged$ VSCAT.001== 464
>> except it's  a huge table (I guess I have to get rid of all rows with NA).
>>
>
> Yes, I believe I mentioned earlier that you have to axe the NA matches
> manually:
>
> query <- rearranged$VSCAT.001 == 464 & !is.na(rearranged$VSCAT.001)
> rearranged[query,]
>
> Will get you what you want.
>
>  I tried using the %~% but R doesn't recognize it.  So maybe it has to do
>> with the rounding errors?
>>
>
> Rounding errors won't happen with integer comparisons (and it looks like
> the VSCAT.001 columns is integers, no?).
>
>
> -steve
>
> --
> Steve Lianoglou
> Graduate Student: Computational Systems Biology
>  |  Memorial Sloan-Kettering Cancer Center
>  |  Weill Medical College of Cornell University
> Contact Info: http://cbio.mskcc.org/~lianos/contact<http://cbio.mskcc.org/%7Elianos/contact>
>
>

	[[alternative HTML version deleted]]


