[R] strange thing with sd

Andreas Pauling pauling at giub.unibe.ch
Mon Mar 29 16:54:11 CEST 2004


Zitat von Barry Rowlingson <B.Rowlingson at lancaster.ac.uk>:

> Peter Flom wrote:
> > I tried your sample code, and a few other variations, and
> got 0 for all
> > of them, running R 1.8.1 on a Windows machine
> 
>   Not only do I get 0 on R 1.8.1 on Unix (linux, RH8), I get
> _exactly_ 
> 0. I thought this was going to be a simple arithmetic
> precision problem, 
> but this test script shows the answers to be exactly zero:
> 
> zertest <- function(q){
>    if( q != 0 ){
>      theCall <- deparse(substitute(q))
>      cat(paste("failed",theCall,' : got ',q,'\n',sep=' '))
>    }
> }
> 
> # these fail, as expected:
> zertest(sd(c(1,2,3)))
> zertest(sd(c(rep(0.01,12),0.00000001)))
> 
> # these pass as zero:
> zertest(sd(rep(0.01,      13)))  #1.805557e-18

This doesnt pass as zero:

> zertest(sd(rep(0.01,      13)))
failed sd(rep(0.01, 13))  : got  1.80555743920831e-18 

I use Unix-Version Sun OS 5.9. I didnt compile it myself. Could
compiler/config problems have caused this?

> zertest(sd(rep(0.001,     13)))  #4.513894e-19

This doesnt pass, either.

> zertest(sd(rep(0.00001,   13)))  #0
> zertest(sd(rep(0.00000001,13)))  #0
> 
>   Might be a compiler/config funny. Andreas: what 'UNIX' is
> this? Did 
> you compile R yourself? Did you run 'make check'?
> 
> Baz
> 
> 
>




More information about the R-help mailing list