重複の可能性:
これらの数値が等しくないのはなぜですか?
誰かが私に説明できますか、なぜRFALSE
は次の場合に答えますか?
(1-0.9)>=0.1
TRUE
そのような比較をするにはどうすればよいですか?
重複の可能性:
これらの数値が等しくないのはなぜですか?
誰かが私に説明できますか、なぜRFALSE
は次の場合に答えますか?
(1-0.9)>=0.1
TRUE
そのような比較をするにはどうすればよいですか?
これは古典的なRFAQ7.31です。あなたが必要ですall.equal
これは浮動小数点の精度と関係があります。本質的には無限の量のフローティングポイントがあり、コンピュータでそれらを表現することは離散的にしか行うことができず、したがって精度が制限されます。この制限された精度を考慮に入れるには、を使用all.equal
して比較を行います。@RomainFracoisが言ったように、これはRで非常によく聞かれる質問です。
独自の二項演算子を作成して、目的の処理を実行し、それらを.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