[R] understanding integer divide (%/%)

Thomas Lumley tlumley at u.washington.edu
Wed Jan 3 16:45:33 CET 2007


On Wed, 3 Jan 2007, ONKELINX, Thierry wrote:

> This is due to the internal representation of 0.1, which is not exactly
> 0.1 but very close to it. If you want to do an integer divide, you
> should only use integers to divide with.

This must be more-or-less correct, but it is worth noting that
> 0.1*10==1
[1] TRUE
> 1/0.1==10
[1] TRUE
> 1%/%0.1==10
[1] FALSE
so it isn't quite that simple.

Interestingly, the results seem to vary by system -- on a G4 Mac I get
1 %/% (1/x) == x for all x from 1 to 50

 	-thomas



> Cheers,
>
> Thierry
>
> ------------------------------------------------------------------------
> ----
>
> ir. Thierry Onkelinx
>
> Instituut voor natuur- en bosonderzoek / Reseach Institute for Nature
> and Forest
>
> Cel biometrie, methodologie en kwaliteitszorg / Section biometrics,
> methodology and quality assurance
>
> Gaverstraat 4
>
> 9500 Geraardsbergen
>
> Belgium
>
> tel. + 32 54/436 185
>
> Thierry.Onkelinx at inbo.be
>
> www.inbo.be
>
>
>
> Do not put your faith in what statistics say until you have carefully
> considered what they do not say.  ~William W. Watt
>
> A statistical analysis, properly conducted, is a delicate dissection of
> uncertainties, a surgery of suppositions. ~M.J.Moroney
>
> -----Oorspronkelijk bericht-----
> Van: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch] Namens Jeffrey Prisbrey
> Verzonden: woensdag 3 januari 2007 14:21
> Aan: r-help at stat.math.ethz.ch
> Onderwerp: [R] understanding integer divide (%/%)
>
> I am confused about why the following occurs:
>
>> version
>               _
> platform       i386-pc-mingw32
> arch           i386
> os             mingw32
> system         i386, mingw32
> status
> major          2
> minor          4.0
> year           2006
> month          10
> day            03
> svn rev        39566
> language       R
> version.string R version 2.4.0 (2006-10-03)
>> 1 %/% 0.1
> [1] 9
>> 10 %/% 1
> [1] 10
>>
>
> This effect led me into an trap when I tried to
> classify a set of proportions based on the first
> decimal place by integer dividing by 0.1.  Can someone
> explain why this behavior occurs and give me an
> insight into how to predict it?
>
> Thanks,
> -- Jeff
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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 at stat.math.ethz.ch 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.
>

Thomas Lumley			Assoc. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle



More information about the R-help mailing list