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.