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 = "")
x, y | Vector types. |
---|---|
... | These dots are for future extensions and must be empty. |
x_arg, y_arg | Argument names for |
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.