This is R FAQ 7.31, about machine representation of
floating point numbers.

> mygrid$u[3] - mygrid$l[3]
[1] 1.110223e-16

So
mygrid$l[3] < mygrid$u[3]
is true, though the difference is very, very small and due solely
to the limitations of computers.

Sarah

On Thu, Feb 2, 2012 at 5:00 AM, Jonas Hal <j...@brf.dk> wrote:
> The example here puzzles me. It seems like the < operator doesn't work as 
> expected.
>
>> l <- 0.6
>> u <- seq(0.4, 0.7, 0.1)
>> u
> [1] 0.4 0.5 0.6 0.7
>> mygrid <- expand.grid("l" = l, "u" = u)
>> mygrid
>    l   u
> 1 0.6 0.4
> 2 0.6 0.5
> 3 0.6 0.6
> 4 0.6 0.7
>> mygridcollapsed <- mygrid[mygrid$l < mygrid$u, ]
>> mygridcollapsed
>    l   u
> 3 0.6 0.6
> 4 0.6 0.7
>
> In this little example I expect 'mygridcollapsed' only to return row 4 and 
> for it to return row 3 seems wrong. The strange thing is it seems to work if 
> I start the u-sequence at 0.5.
>
>> l <- 0.6
>> u <- seq(0.5, 0.7, 0.1)
>> u
> [1] 0.5 0.6 0.7
>> mygrid <- expand.grid("l" = l, "u" = u)
>> mygrid
>    l   u
> 1 0.6 0.5
> 2 0.6 0.6
> 3 0.6 0.7
>> mygridcollapsed <- mygrid[mygrid$l < mygrid$u, ]
>> mygridcollapsed
>    l   u
> 3 0.6 0.7
>
> Maybe I'm missing something...
>
> Best wishes
> Jonas Hal
>
>

-- 
Sarah Goslee
http://www.functionaldiversity.org

______________________________________________
R-help@r-project.org 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.

Reply via email to