Is there a single function in R that determines if a value is NA
, NaN
, Inf
, -Inf
, or otherwise not a well-formed number?
One function to detect NaN, NA, Inf, -Inf, etc.?
You want 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
@kohske: Good point.
is.finite(FALSE)
also returns TRUE
. This is likely because TRUE
and FALSE
are just integers. –
Starfish True and false aren't integers - but they will be coerced without error/warning message –
Miscarriage
@hadley: I wasn't clear; thanks for clarifying. I was referring to R booleans being 32-bit integers at the C level, not that
is.integer(TRUE)
would return TRUE
. –
Starfish © 2022 - 2024 — McMap. All rights reserved.
is.finite(TRUE)
also returnsTRUE
. – Flagitious