See the FAQ Q7.31: 0.07 is not exactly representable on your computer. 0.060 + 2*0.005 != 0.070 in computer arithmetic:
> options(digits=18) > 0.060 [1] 0.06 > 0.070 [1] 0.070000000000000007 > 0.060+2*0.005 [1] 0.06999999999999999 > 0.06+2*0.005 -0.07 [1] -1.3877787807814457e-17 > .Machine$double.eps * 0.07 [1] 1.5543122344752193e-17 On Wed, 30 Aug 2006, [EMAIL PROTECTED] wrote: > Full_Name: Mark James Kelly > Version: 2.3.1 > OS: Windows > Submission from: (NULL) (193.63.127.224) > > > Sequence produces slightly inaccurate results. sequence() is a different function in R. > #This (supposedely) creates a sequence 0.060,0.065,0.070.....0.30 > thingnor=(seq(0.06,0.30,by=0.005)) > > #This does the same but rounds to three decimals > thingrou=round(seq(0.06,0.30,by=0.005),3) > > #This is another vector, the same length as the two above, with 24 zeroes, > then > 0.070, then 24 zeroes > otherthing=c(rep(0,24),0.070,rep(0,24)) > > > #This fails to select the entries equal to 0.070 > otherthing[otherthing==thingnor[3]] > > #This gives the correct answer > otherthing[otherthing==thingrou[3]] > > > #This compares the two sequences (which should be identical) > (thingnor-thingrou) Not according to FAQ Q7.31 and help("=="). -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel