A list_of object is a list where each element has the same type. Modifying the list with $, [, and [[ preserves the constraint by coercing all input items.

list_of(..., .ptype = NULL)

as_list_of(x, ...)

validate_list_of(x)

is_list_of(x)

# S3 method for vctrs_list_of
vec_type2(x, y, ...)

# S3 method for vctrs_list_of
vec_cast(x, to)

Arguments

...

Vectors to coerce.

.ptype

If NULL, the default, the output type is determined by computing the common type across all elements of ....

Alternatively, you can supply .ptype to give the output known type. If getOption("vctrs.no_guessing") is TRUE you must supply this value: this is a convenient way to make production code demand fixed types.

x

For as_list_of(), a vector to be coerced to list_of.

y, to

Arguments to vec_type2() and vec_cast().

Details

Unlike regular lists, setting a list element to NULL using [[ does not remove it.

Examples

x <- list_of(1:3, 5:6, 10:15) if (requireNamespace("tibble", quietly = TRUE)) { tibble::tibble(x = x) }
#> # A tibble: 3 x 1 #> x #> <list<int>> #> 1 1, 2, 3 #> 2 5, 6 #> 3 10, 11, 12, 13, 14, 15
vec_c(list_of(1, 2), list_of(FALSE, TRUE))
#> <list_of<double>[4]> #> [[1]] #> [1] 1 #> #> [[2]] #> [1] 2 #> #> [[3]] #> [1] 0 #> #> [[4]] #> [1] 1 #>