Check if an object is NA. Always return TRUE of FALSE, a logical vector of length one.

isNA(x)

Arguments

x

any R object.

Details

isNA returns TRUE if the argument is a single NA, i.e. it has length one and represents an NA value. In any other case isNA returns FALSE.

isNA is suitable for use in conditional constructs since it always returns a single value which is never NA.

Note that identical() distinguishes different types of NA, i.e. identical(x, NA) is TRUE only if x is NA (logical).

Value

TRUE or FALSE

See also

isTRUE, is.na, identical

Examples

v <- c(1, NA, 3) isNA(v[2]) # TRUE
#> [1] TRUE
## identical() distinguishes different types of NA: class(v) # "numeric", not "integer"
#> [1] "numeric"
identical(v[2], NA) # FALSE, NA on its own is "logical"
#> [1] FALSE
identical(v[2], NA_integer_) # FALSE
#> [1] FALSE
identical(v[2], NA_real_) # TRUE
#> [1] TRUE
vi <- c(1L, NA_integer_, 3L) isNA(vi[2]) # TRUE
#> [1] TRUE
class(vi) # "integer"
#> [1] "integer"
identical(vi[2], NA_integer_) # TRUE
#> [1] TRUE
identical(vi[2], NA_real_) # FALSE
#> [1] FALSE
## is.na(NULL) would give a warning isNA(NULL) # FALSE
#> [1] FALSE
## a length zero object is not NA, so isNA() returns FALSE: isNA(logical(0)) # FALSE
#> [1] FALSE
## is.na() has a different remit and returns a 0-length vector: is.na(logical(0)) # logical(0)
#> logical(0)