Skip to content

vec_is_list() tests if x is considered a list in the vctrs sense. It returns TRUE if:

  • x is a bare list with no class.

  • x is a list explicitly inheriting from "list".

list_all_vectors() takes a list and checks that all elements of x are vectors.

vec_check_list() and list_check_all_vectors() throw a type error if the input is not a list as defined by vec_is_list() and list_all_vectors() respectively.

Usage

vec_is_list(x)

vec_check_list(x, ..., arg = caller_arg(x), call = caller_env())

list_all_vectors(x)

list_check_all_vectors(x, ..., arg = caller_arg(x), call = caller_env())

Arguments

x

An object.

...

These dots are for future extensions and must be empty.

arg

An argument name as a string. This argument will be mentioned in error messages as the input that is at the origin of a problem.

call

The execution environment of a currently running function, e.g. caller_env(). The function will be mentioned in error messages as the source of the error. See the call argument of abort() for more information.

Details

Notably, data frames and S3 record style classes like POSIXlt are not considered lists.

Examples

vec_is_list(list())
#> [1] TRUE
vec_is_list(list_of(1))
#> [1] TRUE
vec_is_list(data.frame())
#> [1] FALSE

list_all_vectors(list(1, mtcars))
#> [1] TRUE
list_all_vectors(list(1, environment()))
#> [1] FALSE

# `list_`-prefixed functions assume a list:
try(list_all_vectors(environment()))
#> Error in list_all_vectors(environment()) : 
#>   `x` must be a list, not an environment.