vec_ptype2() defines the coercion hierarchy for a set of related
vector types. Along with vec_cast(), this generic forms the
foundation of type coercions in vctrs.
vec_ptype2() is relevant when you are implementing vctrs methods
for your class, but it should not usually be called directly. If
you need to find the common type of a set of inputs, call
vec_ptype_common() instead. This function supports multiple
inputs and finalises the common type.
# S3 method for logical
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")# S3 method for integer
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for double
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for complex
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for character
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for raw
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
# S3 method for list
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
vec_ptype2(x, y, ..., x_arg = "", y_arg = "")
Vector types.
These dots are for future extensions and must be empty.
Argument names for x and y. These are used
in error messages to inform the user about the locations of
incompatible types (see stop_incompatible_type()).
For an overview of how these generics work and their roles in vctrs,
see ?theory-faq-coercion.
For an example of implementing coercion methods for simple vectors,
see ?howto-faq-coercion.
For an example of implementing coercion methods for data frame
subclasses, see
?howto-faq-coercion-data-frame.
For a tutorial about implementing vctrs classes from scratch, see
vignette("s3-vector").
vec_ptype() is applied to x and y
stop_incompatible_type() when you determine from the
attributes that an input can't be cast to the target type.