You need to back up a bit to see the root cause of the problem, which is that seq()'s calculations necessarily involve some roundoff error (since it works with 52 binary digits of precision): > u <- seq(from=0.4, to=0.7, by=0.1) > u - c(0.4, 0.5, 0.6, 0.7) [1] 0.000000e+00 0.000000e+00 1.110223e-16 0.000000e+00 > u - (4:7) * 0.1 [1] 0.000000e+00 0.000000e+00 0.000000e+00 -1.110223e-16 > u - (4:7) / 10 [1] 0.000000e+00 0.000000e+00 1.110223e-16 0.000000e+00 > u - cumsum(c(0.4, 0.1, 0.1, 0.1)) [1] 0.000000e+00 0.000000e+00 0.000000e+00 -1.110223e-16 I find the easiest way around this sort of problem is to use integer sequences (use them as subscripts into your real sequence and do the tests on the subscripts).
Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of Jonas Hal > Sent: Thursday, February 02, 2012 2:01 AM > To: r-help@r-project.org > Subject: [R] The "less than" (<) operator doesnt seem to perform as expected > > 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 > > > ______________________________________________________________________________________________________ > ___________________________________ > BRFkredit sender e-mails og vedhaeftede dokumenter i ikke-krypteret form. > Hvis du ikke ?nsker at > modtage oplysninger fra BRFkredit pr. e-mail, beder vi dig meddele os det via > brev eller e-mail. Denne > e-mail kan indeholde fortrolig information. Hvis du modtager e-mailen ved en > fejl, beder vi dig > informere os om det hurtigst muligt. Samtidig beder vi dig slette e-mailen > uden at videresende eller > kopiere indholdet. > ______________________________________________________________________________________________________ > ___________________________________ > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. ______________________________________________ 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.