On Wed, Jun 9, 2010 at 2:20 PM, Nikhil Kaza <nikhil.l...@gmail.com> wrote: > which(abs(v - .1) <= .Machine$double.eps) > > seems to me too cumbersome to write. Any other easier way? all.equal does > not quite work
See isZero() in R.utils, e.g. isZero(abs(v - 0.1)); You can adjust the precision with argument 'neps' (a scale factor of 'eps' specifying how close to "close" means) by: isZero(abs(v - 0.1), neps=5); The default is eps=.Machine$double.eps and neps=1. You can also do things as: isZero(abs(v - 0.1), eps=1e-4); It returns a logical vector. You have to apply which() to get the TRUE indices. /Henrik > > Nikhil > > On Jun 9, 2010, at 7:54 AM, Petr PIKAL wrote: > >> Hi >> >> r-help-boun...@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.fo...@diamond.ac.uk >>> Alt Email: j.fo...@imperial.ac.uk >>> >>> -- >>> This e-mail and any attachments may contain confidential...{{dropped:8}} >>> >>> ______________________________________________ >>> R-help@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. >> >> ______________________________________________ >> R-help@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. > > ______________________________________________ > R-help@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. > ______________________________________________ R-help@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.