[R] trouble with cumsum?

Dirk Eddelbuettel edd at debian.org
Mon May 30 02:46:23 CEST 2005


On 29 May 2005 at 20:17, Makram Talih wrote:
| Dear R users,
| 
| I am using R version 2.0.1 (2004/11/15) on an i386-pc-mingw32 platform. I
| encounter the following problem while using cumsum:
| 
| > a <- rep(0.01, 100)
| > b <- cumsum(a)
| > sum(a) == 1
| [1] TRUE
| > b[100] == 1
| [1] FALSE
| 
| Am I missing something? 

Yes, FAQ section 7.31 entitled "Why doesn't R think these numbers are equal?".

| Should cumsum have such an outcome?

> a <- rep(0.01, 100)
> b <- cumsum(a)
> sum(a) == 1
[1] FALSE
> all.equal(sum(a), 1)
[1] TRUE
> all.equal(b[100], 1)
[1] TRUE
> 

On my Linux system with R 2.1.0, the first equality fails whereas it "worked"
for you. Morale: don't forget about floating-point math ...

Hth, Dirk

-- 
Statistics: The (futile) attempt to offer certainty about uncertainty.
         -- Roger Koenker, 'Dictionary of Received Ideas of Statistics'




More information about the R-help mailing list