R: Is a vector integer-like?

is_integerish {rlang} | R Documentation

## Is a vector integer-like?

### Description

These predicates check whether R considers a number vector to be integer-like, according to its own tolerance check (which is in fact delegated to the C library). This function is not adapted to data analysis, see the help for `base::is.integer()` for examples of how to check for whole numbers.

Things to consider when checking for integer-like doubles:

- This check can be expensive because the whole double vector has to be traversed and checked.

- Large double values may be integerish but may still not be coercible to integer. This is because integers in R only support values up to `2^31 - 1` while numbers stored as double can be much larger.

### Usage

    is_integerish(x, n = NULL, finite = NULL)

    is_bare_integerish(x, n = NULL, finite = NULL)

    is_scalar_integerish(x, finite = NULL)

### Arguments

`x` | Object to be tested.
`n` | Expected length of a vector.
`finite` | 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.

### See Also

`is_bare_numeric()` for testing whether an object is a base numeric type (a bare double or integer vector).

### Examples

    is_integerish(10L)
    is_integerish(10.0)
    is_integerish(10.0, n = 2)
    is_integerish(10.000001)
    is_integerish(TRUE)

[Package rlang version 0.3.2 Index]