r - 强制除以零默认为 NaN 而不是 Inf

标签 r division divide-by-zero

我想知道是否有我忽略的强制设置 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

我想知道是否可以避免最后一步,同时仍然获得相同的预期结果。

最佳答案

我会改变我的谓词而不是试图重新定义数学:

 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> 

关于r - 强制除以零默认为 NaN 而不是 Inf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18881032/

相关文章:

r - 提取 RColorBrewer 调色板用于其他用途

c - 计算商而不跟踪余数的除法算法

PostgreSQL 在订购时除以零

java - 除以 0 的正则表达式

r - 在 R 中检查字符(字母)数据输入的正确方法是什么?

r - 使用 purrr 和 dplyr 将函数应用于列的子集

html - 使用最少的 CSS 代码实现

c - 组装中的 split

python - 逻辑回归的 MLE 对数似然给出除以零误差

r - 精子功能不明确