[R] The "less than" (<) operator doesnt seem to perform as expected

William Dunlap wdunlap at tibco.com
Thu Feb 2 16:59:40 CET 2012


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-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Jonas Hal
> Sent: Thursday, February 02, 2012 2:01 AM
> To: r-help at 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 at 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.



More information about the R-help mailing list