Project Status: Active - The project has reached a stable, usable state and is being actively developed. SemaphoreCI Build Status AppVeyor Build Status

A set of predicates and assertions for checking the properties of variables, such as length, names and attributes. Most of the documentation is on the assertive page. End-users will usually want to use assertive directly.


To install the stable version, type:


To install the development version, you first need the devtools package.


Then you can install the package using



has_attributes checks a variable for the presence of named attributes. has_any_attributes and has_no_attributes check for the presence or absence of any attributes at all.

has_dims, has_rows, and has_cols check for the dimensions, rows and columns respectively.

has_duplicates and has_no_duplicates check whether or not a vector has duplicate elements.

has_names, has_dimnames, has_rownames, and has_colnames check for various types of name.

is_atomic, is_recursive, and is_vector check for these types of variables.

is_empty, is_non_empty, is_scalar, and is_non_scalar check for objects of length 0 or 1 (or objects with 0/1 element).

is_of_length, has_elements, and is_of_dimension provide more general variable size checks.

are_same_length and have_same_dims check for two variables having the same length/dimensions.

is_null and is_not_null check whether an object is NULL or not.

is_unsorted checks for unsorted vectors.


Predicates that return a vector have two corresponding assertions. For example, has_attributes has assert_has_all_attributes and assert_has_any_attributes.

Predicates returning a single logical value have one corresponding assertion. For example, is_null has assert_is_null.


DIM returns the dimension of an object, and works with vectors (like NROW and NCOL).

n_elements returns the number of elements in an object.