Why does a[which(b == c[d])] not work?
On Wednesday 08 October 2003 11:27, Thomas Bock wrote:
Dear list, I can not understand why the expression in the subject does not work correct:
> dcrn[which(fn == inve[2])]
numeric(0)
> inve[2]
[1] 406.7
> dcrn[which(fn == 406.7)]
[1] 1.3994e-07 1.3988e-07 1.3953e-07 1.3966e-07 1.3953e-07 1.3968e-07
The reason is that you shouldn't compare numeric output like that, consider the following example: R> x <- 406.7 + 1e-5 R> x [1] 406.7 R> x == 406.7 [1] FALSE whereas R> x <- 406.7 + 1e-20 R> x [1] 406.7 R> x == 406.7 [1] TRUE that is 1.) `==' comparisons have a certain tolerance 2.) the print output is not necessarily "precisely" your number Instead of using `==' you should use a comparison with a certain tolerance you can specify... hth, Z
Is this a kick self problem or an bug? Thaks very much Thomas
______________________________________________ R-help at stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help