These type predicates aim to make type testing in R more
consistent. They are wrappers around base::typeof()
, so operate
at a level beneath S3/S4 etc.
is_list(x, n = NULL)is_atomic(x, n = NULL)
is_vector(x, n = NULL)
is_integer(x, n = NULL)
is_double(x, n = NULL, finite = NULL)
is_complex(x, n = NULL, finite = NULL)
is_character(x, n = NULL)
is_logical(x, n = NULL)
is_raw(x, n = NULL)
is_bytes(x, n = NULL)
is_null(x)
Object to be tested.
Expected length of a vector.
Whether all values of the vector are finite. The
non-finite values are NA
, Inf
, -Inf
and NaN
. Setting this
to something other than NULL
can be expensive because the whole
vector needs to be traversed and checked.
Compared to base R functions:
The predicates for vectors include the n
argument for
pattern-matching on the vector length.
Unlike is.atomic()
in R < 4.4.0, is_atomic()
does not return TRUE
for
NULL
. Starting in R 4.4.0 is.atomic(NULL)
returns FALSE.
Unlike is.vector()
, is_vector()
tests if an object is an
atomic vector or a list. is.vector
checks for the presence of
attributes (other than name).
bare-type-predicates scalar-type-predicates