一种检测 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 中是否有一个函数可以确定一个值是NANaNInf-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。这可能是因为 TRUEFALSE 只是整数。 True 和 false 不是整数 - 但它们将被强制转换而不会出现错误/警告消息 @hadley:我不清楚;感谢您的澄清。我指的是 R 布尔值是 C 级别的 32 位整数,而不是 is.integer(TRUE) 会返回 TRUE

以上是关于一种检测 NaN、NA、Inf、-Inf 等的功能?的主要内容,如果未能解决你的问题,请参考以下文章