Ric*_*rta 5 r division divide-by-zero
我想知道是否可能有一个设置我忽略强制R返回NaN而不是± Inf除以零.
我经常发现自己在做类似的事情
results[is.infinite(results)] <- NaN
Run Code Online (Sandbox Code Playgroud)
我希望完全跳过过滤/搜索过程.
### 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
Run Code Online (Sandbox Code Playgroud)
实现预期结果的简单方法是:
quotient[is.infinite(quotient)] <- NaN
Run Code Online (Sandbox Code Playgroud)
我想知道的是,如果最后一步可以避免,同时仍然得到相同的预期结果.
我会切换我的谓词,而不是试图重新定义数学:
R> is.finite(c(Inf, NA, NaN))
[1] FALSE FALSE FALSE
R> is.infinite(c(Inf, NA, NaN))
[1] TRUE FALSE FALSE
R> is.na(c(Inf, NA, NaN))
[1] FALSE TRUE TRUE
R>
Run Code Online (Sandbox Code Playgroud)
这些属性会有帮助吗?0*Inf是NaN也是,所以尝试这样的事情也会得到你想要的结果NaN+Inf:NaN
quotient <- (num / denom)*0 + (num / denom)
## [1] -0.5 -2.0 NaN 4.0 2.5 NA
Run Code Online (Sandbox Code Playgroud)