r - 将 float 序列与向量进行比较

标签 r comparison seq

这太愚蠢了,我几乎不敢问。但就这样吧。

> b <- c( 0.54, 0.56, 0.58, 0.6 )
> s <- seq( 0.54, 0.60, 0.02 )

我希望这两者是相等的,但是......

> b == s
[1] TRUE  TRUE FALSE  TRUE

什么给了?我一定是错过了一些非常愚蠢的东西。顺便说一句,我让一位同事在他的机器上复制了同样的内容。我正在使用

> sessionInfo()

R version 3.0.0 (2013-04-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_Canada.1252  LC_CTYPE=English_Canada.1252                     LC_MONETARY=English_Canada.1252
[4] LC_NUMERIC=C                    LC_TIME=English_Canada.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.0.0

文档中有关 seq 行为的详细信息,也许?

更新:请参阅下面的答案和 here 。教训:永远不要忘记这就是全部floating point arithmetic .

最佳答案

尝试使用all.equal函数

> all.equal(b,s)
[1] TRUE

关于r - 将 float 序列与向量进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22871921/

相关文章:

haskell - Haskell 中 seq 如何计算无限列表?

scala .seq 与 .toSeq

r - 在 R/ggplot 中没有得到 geom_text

c# - 如何比较人物(尊重文化)

java - 引用数组列表中的值对,然后比较它们

Python递归调用不执行代码 - 3个序列的子序列的最长公共(public)

r - 如何使用 tidyverse 函数计算 tibble 上的行和列总计

r - 如何用多边形突出显示时间序列预测的置信区域

r - 如何按顺序逐行更新

c# - 比较 3 个对象