答案 0 :(得分:5)
这是经典的R FAQ 7.31。您需要all.equal
答案 1 :(得分:5)
这与浮点精度有关。实质上存在无限量的浮点,在计算机中表示它们只能离散地完成,因此精度有限。要将此有限精度考虑在内,请使用all.equal
进行比较。正如@RomainFracois所说,这是R中经常被问到的问题。
答案 2 :(得分:3)
您可以创建自己的二元运算符来执行您所需的操作并将它们存储在.Rprofile中:
`%>=%` <- function(x, y) all.equal(x, y) | x > y
`%<=%` <- function(x, y) all.equal(x, y) | x < y
c(1-.9)>=.1
c(1-.9)%>=% .1