1. ホーム
  2. r

[解決済み] 整数であるかどうかのチェック

2022-07-12 02:55:58

質問

Rには、数値が整数かどうかを調べる便利な関数がないことを知り、驚いています。

is.integer(66) # FALSE

この のヘルプファイルが警告します。 :

is.integer(x)x が整数を含むかどうかをテストしません。そのために を使います。 round のように、関数 is.wholenumber(x) を例として挙げています。

例では、"workaround"として、このカスタム関数があります。

is.wholenumber <- function(x, tol = .Machine$double.eps^0.5)  abs(x - round(x)) < tol
is.wholenumber(1) # is TRUE

もし私が整数をチェックする関数を書かなければならないとしたら、上記のコメントを読まなかったと仮定して、次のような関数を書くと思います。

check.integer <- function(x) {
    x == round(x)
}

私のアプローチはどこで失敗するのでしょうか?もしあなたが私の仮説の立場だったら、どのように対処しますか?

どのように解決するのでしょうか?

分数部を確認する方法もあります。

x%%1==0

とか、ある許容範囲内でチェックしたい場合は

min(abs(c(x%%1, x%%1-1))) < tol