Rで浮動小数点の一致を確認するとき”==”演算子では同じであるにもかかわらずFALSEが返される場合があります。問題を解決するために、identicalとall.equalコマンドを組み合わせて使用している方は多いかと思います。
しかし、多用するとコードが煩雑となり視認性が悪くなります。
そんな問題を解決する「fpCompare」パッケージを紹介します。なお、「fpCompare」パッケージで使用できる演算子を表にまとめています。
パッケージのバージョンは0.2.4。R version 4.2.2でコマンドを確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール
install.packages("fpCompare")
実行コマンド
詳細はコマンド、パッケージヘルプを確認してください。
#パッケージの読み込み
library("fpCompare")
#浮動小数点
x1 <- 0.05 - 0.03
x2 <- 0.03 - 0.01
#通常の比較ではパソコンによりますがFALSEとなります
x1 == x2
[1] FALSE
#そこで、identicalとall.equalコマンドを組み合わせて
#使用している方は多いと思います,必ずTRUEが返されます
identical(all.equal(x1, x2), TRUE)
[1] TRUE
#ただ、コードが煩雑になりがちです
#fpCompareパッケージの利用
#同等性の確認演算子:%==%
x1 %==% x2
[1] TRUE
パッケージで使用できる演算子
パッケージで使用できる演算子の内容を基本演算子で示しています。参考にしてください。
fpCompare演算子 | 基本演算子で内容を表現 |
---|---|
%>=% | >= |
%>>% | > |
% | |
% | |
%==% | == |
%!=% | != |
少しでも、あなたの解析が楽になりますように!!