seq结果与vector return false相比较

时间:2015-07-20 17:34:26

标签: r vector logic

我有以下代码:

     seq(0.2, 0.4, by = 0.1) == c(0.2, 0.3, 0.4)

产生:

     [1]  TRUE FALSE  TRUE

有人可以解释一下这个结果吗?

1 个答案:

答案 0 :(得分:1)

这是数字错误:

> seq(0.2, 0.4, by = 0.1)-c(0.2, 0.3, 0.4)
[1] 0.000000e+00 5.551115e-17 0.000000e+00

请参阅?identical?all.equal并进行比较:

> identical(seq(0.2, 0.4, by = 0.1),c(0.2, 0.3, 0.4))
[1] FALSE
> all.equal(seq(0.2, 0.4, by = 0.1),c(0.2, 0.3, 0.4))
[1] TRUE

同样比较:

> seq(2L,4L,by=1L)/10==c(.2,.3,.4)
[1] TRUE TRUE TRUE