测试R中双重的平等 - 奇怪的行为

时间:2013-08-27 05:06:37

标签: r

首先,我将在这个问题的前言中说,我知道使用==来测试双打的平等是一个坏主意,而我应该使用isTRUE(all.equal()),但我遇到了一些奇怪的问题不是四舍五入的行为:

设置:

> a <- c(0.2, 0.4, 0.6)
> b <- a - 0.3
 [1] -0.1 0.1 0.3
> c <- abs(b)
 [1] 0.1 0.1 0.3

现在进入奇怪的行为:

which(a == 0.4)  # This works fine.
which(b == 0.1)  # integer(0) - no good.
which(b == 0.3)  # But this works fine?
which(c == 0.3)  # Also fine
which(c == 0.1)  # integer(0) - no good.
c[1] == c[2]     # FALSE

我不知道为什么它在某些情况下工作正常而不是其他情况?

0 个答案:

没有答案