Combine all arguments into a new vector of common type.

vec_c(..., .ptype = NULL)

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.

Value

A vector with class given by .ptype, and length equal to the sum of the vec_size() of the contents of ....

The vector will have names if the individual components have names (inner names) or if the arguments are named (outer names). If both inner and outer names are present, they are combined with a ..

Invariants

  • vec_size(vec_c(x, y)) == vec_size(x) + vec_size(y)

  • vec_type(vec_c(x, y)) == vec_type_common(x, y).

See also

vec_cbind()/vec_rbind() for combining data frames by rows or columns.

Examples

vec_c(FALSE, 1L, 1.5)
#> [1] 0.0 1.0 1.5
vec_c(FALSE, 1L, "x", .ptype = character())
#> [1] "FALSE" "1" "x"
# Date/times -------------------------- c(Sys.Date(), Sys.time())
#> [1] "2019-02-18" "4247183-09-30"
#> [1] "2019-02-18 23:28:01 UTC" "1970-01-01 04:59:05 UTC"
vec_c(Sys.Date(), Sys.time())
#> [1] "2019-02-18 00:00:00 UTC" "2019-02-18 23:28:01 UTC"
vec_c(Sys.time(), Sys.Date())
#> [1] "2019-02-18 23:28:01 UTC" "2019-02-18 00:00:00 UTC"
# Factors ----------------------------- c(factor("a"), factor("b"))
#> [1] 1 1
vec_c(factor("a"), factor("b"))
#> [1] a b #> Levels: a b