4

これはどこかで既に回答されていると思いますので、あらかじめお詫びいたしますが、検索してみたら運が悪かったので……。

.... R で x + 0.0i の形式の数値を処理するスマートな方法は何ですか?

たとえば、

y <- 1 + 0.0i

もちろん:

y == 1

本当です。では、y を強制的に 1 にする最良の方法は何でしょうか。

編集:

私は虚数部を破棄したくありませんround(Im(y)) == 0が、これを明示的にテストする必要がないようにする方法を望んでいました.

4

1 に答える 1

3

これより優れたものは考えられません (はい、想像上の収縮機能が組み込まれていないのは驚くべきことです...または、誰かがまだそれを思い付くかもしれません)

f <- function(x) {
   if (all(Im(z <- zapsmall(x))==0)) as.numeric(z) else x
}
于 2012-11-22T21:45:57.900 に答える