我想这已经在某个地方得到了回答,所以提前道歉,但是我试图没有运气就搜索,所以.....
....处理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
}