我想这已经在某个地方得到了回答,所以提前道歉,但是我试图没有运气就搜索,所以.....

....处理R中x + 0.0i形式的数字的聪明方法是什么?

例如,假设我们有

y <- 1 + 0.0i


因此,当然:

y == 1


是真的。因此,强制成为1的最佳方法是什么。

编辑:

我不想放弃虚部,除非round(Im(y)) == 0,但我希望找到一种方法来避免必须对此进行显式测试。

最佳答案

想不到比这更好的了(是的,令人惊讶的是,它没有内置的虚构挤压功能……或者也许有人会想出一个)

f <- function(x) {
   if (all(Im(z <- zapsmall(x))==0)) as.numeric(z) else x
}

07-26 07:00