[R] Problem (bug?) with vector indices
Rodrigo Drummond
rduarte at unicamp.br
Tue Aug 31 22:08:00 CEST 2004
Hi all,
I found a problem on R that looks like a bug to me. I am working with R
for windows verson 1.9.0, but the problem also happens on the linux
version 1.9.0. I hope that the problem is on my reasoning, and I would be
grateful if someone could explain me why this happens.
There goes the example:
> x<-seq(-2,2,0.001)
> y<-rep(0,length(x))
> for (i in x){y[1000*i+2001]<-i^2}
> plot(x,y) # Here I found something wrong
> which(y==0)
[1] 244 353 357 361 365 369 482 486 490 494 579 583 587 591
595
[16] 599 603 607 611 615 619 708 712 716 720 724 728 732 736
740
[31] 744 837 841 845 849 853 857 861 865 869 962 966 970 974
978
[46] 982 986 990 994 998 2001
> x[244]
[1] -1.757
> i<-x[244]
> 1000*i+2001
[1] 244
> y[1000*i+2001]
[1] 3.087049
> y[244]
[1] 0
> y[243]
[1] 3.087049
What means that the expression 1000*i+2001, which is equal to 244, inside
the brackets is evaluated as 243! The same occurs with every value of x
that results in a zero value of y, the right value is stored in y one
position before it should be, overwriting the previous value at this
position.
The bug is on R or on my mind?
Thanks a lot.
Rodrigo Drummond
____________________________________________
Rodrigo D. Drummond
Laboratorio Genoma Funcional
Centro de Biologia Molecular e Eng. Genetica
Universidade Estadual de Campinas
Caixa Postal 6010
13083-875 - Campinas - SP - Brasil
Tel: xx-19-3788-1119 Fax: xx-19-3788-1089
More information about the R-help
mailing list