[Rd] (PR#12742) Different result with different order of

ripley at stats.ox.ac.uk ripley at stats.ox.ac.uk
Mon Sep 8 10:55:11 CEST 2008


FAQ 7.31 strikes again.

This is expected: you cannot do exact arithmetic on a binary computer if 
some of the quantities involved are not binary fractions (e.g. 1.3)

See also the warning in ?`==`: identical() is equally inappropiate for 
computed numerical quantities.

On Mon, 8 Sep 2008, kyunseop.bae at gmail.com wrote:

> Full_Name: Kyun-Seop Bae
> Version: 2.7.2
> OS: MS-Windows XP SP2
> Submission from: (NULL) (148.168.40.4)
>
>
> # Script that I used
>
> rm(list=objects())
> objects()
>
> WT <- 91
> AGE <- 41
> SCR <- 1.3
>
> CCL1 <- (140-AGE) * WT / (72 * SCR)
> CCL2 <- (140-AGE) * WT / 72 / SCR
>
> CCL1
> CCL2
>
> identical(CCL1, CCL2)
> identical(CCL1, 96.25)
> identical(CCL2, 96.25)
>
> CCL1*10 + 0.5
> CCL2*10 + 0.5
>
> floor(CCL1*10 + 0.5)
> floor(CCL2*10 + 0.5)
>
> as.integer(CCL1*10 + 0.5)
> as.integer(CCL2*10 + 0.5)
>
>
> # Same with multiplied WT
> # Same in S-Plus Enterprise Developer Version 7.0.6 for Microsoft Windows :
> 2005
> # But these are accurate in MS-Excel.

Unlikely, more likely you don't have identical() to test bit-level 
equality.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-devel mailing list