[R] Odp: strange issue with "which" on "seq"

Petr PIKAL petr.pikal at precheza.cz
Wed Jun 9 13:54:32 CEST 2010


Hi

r-help-bounces at r-project.org napsal dne 09.06.2010 13:16:40:

> Dear R community,
> I am puzzled by the following lines:
> 
> > v <- seq(-0.5,0.5,by=0.1)
> > v
>   [1] -0.5 -0.4 -0.3 -0.2 -0.1  0.0  0.1  0.2  0.3  0.4  0.5
> > which(v == -0.4)
>   [1] 2
> > which(v == 0)
>   [1] 6
> > which(v == 0.1)
> integer(0)
> > which(v == 0.2)
> integer(0)
> > which(v == 0.3)
> integer(0)
> > which(v == 0.4)
>   [1] 10
> > which(v == 0.5)
>   [1] 11
> 
> Why "which" can only match some of the values in "v"? Are the numbers 
> generated by "seq" not exact fractional numbers?
> Please, help me to understand this.

Well FAQ 7.31 was not here some time. Computing in binary results in 
finite precision of fractional numbers.

v <- seq(-0.5,0.5,by=0.1)
v[7]-0.1
[1] 8.326673e-17

Regards
Petr



> 
> J
> 
> Dr James Foadi PhD
> Membrane Protein Laboratory (MPL)
> Diamond Light Source Ltd
> Diamond House
> Harewell Science and Innovation Campus
> Chilton, Didcot
> Oxfordshire OX11 0DE
> 
> Email    :  james.foadi at diamond.ac.uk
> Alt Email:  j.foadi at imperial.ac.uk
> 
> -- 
> This e-mail and any attachments may contain confidential...{{dropped:8}}
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list