[R] strange thing with sd
Uwe Ligges
ligges at statistik.uni-dortmund.de
Mon Mar 29 16:46:46 CEST 2004
Andreas Pauling wrote:
> Dear R people
>
> I came across a strange thing:
>
>
> sd(rep(0.01, 15)) #0
> sd(rep(0.001, 15)) #4.489023e-19
> sd(rep(0.00001, 15)) #0
> sd(rep(0.00000001,15)) #1.712427e-24
>
> sd(rep(0.01, 13)) #1.805557e-18
> sd(rep(0.001, 13)) #4.513894e-19
> sd(rep(0.00001, 13)) #0
> sd(rep(0.00000001,13)) #0
>
> sd(rep(5.01, 15)) #0
> sd(rep(5.001, 15)) #4.489023e-19
> sd(rep(5.00001, 15)) #1.838704e-15
> sd(rep(5.00000001,15)) #9.19352e-16
>
> sd(rep(5.01, 13)) #9.244454e-16
> sd(rep(5.001, 13)) #9.244454e-16
> sd(rep(5.00001, 13)) #1.848891e-15
> sd(rep(5.00000001,13)) #0
>
> Why gives sd sometimes zero and sometimes values close to zero
> and why does it depend on the value and on how many times it is
> repeated?
> Shouldn't it give always zero?
> Is there a way to control this?
>
> I use R Version 1.8.1 under UNIX.
>
> Thanks for any suggestions!!
>
> Andreas
>
I think this is due to expected inaccuracy of numerical floating point
representation (and also happens for me under WinNT 4.0, R-1.9.0 beta).
And for the largest value you have listed
all.equal(1.848891e-15, 0)
is still TRUE.
Uwe Ligges
More information about the R-help
mailing list