一种检测 NaN、NA、Inf、-Inf 等的功能?
Posted
技术标签:
【中文标题】一种检测 NaN、NA、Inf、-Inf 等的功能?【英文标题】:One function to detect NaN, NA, Inf, -Inf, etc.? 【发布时间】:2011-11-23 00:17:37 【问题描述】:R 中是否有一个函数可以确定一个值是NA
、NaN
、Inf
、-Inf
,还是不是格式正确的数字?
【问题讨论】:
【参考方案1】:你想要is.finite
> is.finite(NA)
[1] FALSE
> is.finite(NaN)
[1] FALSE
> is.finite(Inf)
[1] FALSE
> is.finite(1L)
[1] TRUE
> is.finite(1.0)
[1] TRUE
> is.finite("A")
[1] FALSE
> is.finite(pi)
[1] TRUE
> is.finite(1+0i)
[1] TRUE
【讨论】:
请注意,is.finite(TRUE)
也会返回 TRUE
。
@kohske:好点子。 is.finite(FALSE)
也返回 TRUE
。这可能是因为 TRUE
和 FALSE
只是整数。
True 和 false 不是整数 - 但它们将被强制转换而不会出现错误/警告消息
@hadley:我不清楚;感谢您的澄清。我指的是 R 布尔值是 C 级别的 32 位整数,而不是 is.integer(TRUE)
会返回 TRUE
。以上是关于一种检测 NaN、NA、Inf、-Inf 等的功能?的主要内容,如果未能解决你的问题,请参考以下文章
在 R 的数据集中将 -inf、NaN 和 NA 值替换为零
线性模型函数 lm() 错误:外部函数调用中的 NA/NaN/Inf (arg 1)
如何消除“外部函数调用中的 NA/NaN/Inf (arg 7)”使用 randomForest 运行预测
do_one(nmeth) 中的错误:外部函数调用中的 NA/NaN/Inf (arg 1)
Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)