我刚刚花了几个小时调试一些 R 代码,却发现错误是由于Inf
在我的计算过程中潜入的。我检查过NA
,但没想过检查Inf
。
我编写了以下函数来帮助防止将来出现这种情况:
is.bad <- function(x){
is.na(x) | is.nan(x) | is.infinite(x)
}
> is.bad(c(NA, NaN, Inf, -Inf, 0, 1, 1000, 1e6))
[1] TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE
RI 中是否还有其他特殊数据类型需要注意?