[R] scan seems to modify the data

Stephane DRAY dray at biomserv.univ-lyon1.fr
Wed Mar 31 20:54:25 CEST 2004


At 13:34 31/03/2004, Prof Brian Ripley wrote:

>Take a look at formatReal.  scientific thinks 0.251 has 17 digits and
>0.255 has 3.  It really doesn't make any sense to ask for more precision
>than you have (.Machine$double.eps) and you do often get spurious
>errors if you attempt to do so.  So 15 digits is normally safe, but no
>more.
>
>Note that there are decimal -> binary -> decimal conversions and you
>can't say which one introduced the small changes.

I completely agree with you. My problem arise when I try to compute a 
correlation. One of the variable seems to have equal values but it does 
not. Hence, it has a very low variance and so when I try to compute the 
correlation with another variable, this correlation is very high. I wonder 
if it would not be good to introduce a tolerance threshold. Is it 
meaningful to produce correlation when a variance is very low ?
See the example below :

 > essai=matrix(c(0.266,.234,.005,.481,.1,.009,.4,.155,.255,.2,.34,.43),4,3)
 > essai2=sweep(essai,2,apply(essai,2,sum),"/")
 > x=coef(lm(essai2~scale(runif(4))))
 > x
                       [,1]      [,2]       [,3]
(Intercept)     0.25000000 0.2500000 0.25000000
scale(runif(4)) 0.05307906 0.1330111 0.06936634
 > cor(x[1,],runif(3))
[1] 0.932772
 > var(x)
            [,1]        [,2]       [,3]
[1,] 0.01938893 0.011518783 0.01778528
[2,] 0.01151878 0.006843202 0.01056607
[3,] 0.01778528 0.010566067 0.01631426
 > var(x[1,])
[1] 1.92593e-33

Obviously, I can introduce this threshold, but I wonder if 15 digits is 
always a good limit to avoid this kind of problems

 > cor(round(x[1,],15),runif(3))
[1] NA
Warning message:
The standard deviation is zero in: cor(x, y, na.method, method == "kendall")


Thanks a lot to all,

Stéphane DRAY
-------------------------------------------------------------------------------------------------- 

Département des Sciences Biologiques
Université de Montréal, C.P. 6128, succursale centre-ville
Montréal, Québec H3C 3J7, Canada

Tel : 514 343 6111 poste 1233
E-mail : stephane.dray at umontreal.ca
-------------------------------------------------------------------------------------------------- 

Web                                          http://www.steph280.freesurf.fr/




More information about the R-help mailing list