如何从R中的x + 0.0i等数字中删除虚部

时间:2012-11-22 21:26:22

标签: r

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

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

例如假设我们有

y <- 1 + 0.0i

当然:

y == 1

是真的。那么强迫你成为1的最佳方式是什么呢?

修改

除非我round(Im(y)) == 0,否则我不想丢弃虚部,但我希望有办法避免明确地测试它。

1 个答案:

答案 0 :(得分:3)

想不出比这更好的东西(是的,令人惊讶的是,没有一个内置的想象 - 挤压功能......或者可能有人会想出一个)

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