【发布时间】:2013-09-18 19:46:33
【问题描述】:
我想知道是否有一个设置我忽略了强制R 在除以零时返回NaN 而不是±Inf。
我经常发现自己在做类似的事情
results[is.infinite(results)] <- NaN
我希望完全跳过过滤/搜索过程。
示例:
### Example:
num <- c(1:5, NA)
denom <- -2:3
quotient <- num / denom
[1] -0.5 -2.0 Inf 4.0 2.5 NA
# desired results
[1] -0.5 -2.0 NaN 4.0 2.5 NA
达到预期结果的简单方法是:
quotient[is.infinite(quotient)] <- NaN
我想知道的是,是否可以避免最后一步,同时仍然获得相同的预期结果。
【问题讨论】:
-
这并不完全有帮助,但
is.finite将为NA、NaN和Inf返回FALSE。 -
更不用说R为什么要放Inf。除以零不是 Inf。它是未定义的。它应该是NA。我希望您的问题能够引发对这种行为的更好讨论。
-
@Elad663 是绝对正确的。放置 1/0 = Inf 显然是不正确的。投票以引起人们的注意。
标签: r division divide-by-zero