0

R では、なぜ y > 2 でこれが偽になるのですか?

y <- c(1, 2, 3, 4, 5)
x <- 2*y
exp(log(x)) == exp(log(y)) * 2
[1]  TRUE  TRUE FALSE FALSE FALSE
4

2 に答える 2

4

数値精度。差を計算してみてください。

exp(log(x)) - exp(log(y)) * 2

次のようなものを使用できます。

all.equal( exp(log(x)) , exp(log(y)) * 2 )
于 2013-07-15T08:51:33.287 に答える
1

まさに、numerciの精度が原因です。これを試してみてください、さらに簡単な計算

1/2+1/3+1/6 #equal to 1    
(1/2+1/3+1/6)-1 # should be 0
[1] -1.110223e-16
于 2013-07-15T13:12:51.607 に答える