| vec_arith {vctrs} | R Documentation |
This generic provides a common double dispatch mechanism for all infix
operators (+, -, /, *, ^, %%, %/%, !, &, |). It is used
to power the default arithmetic and boolean operators for vctrs objects,
overcoming the limitations of the base Ops generic.
vec_arith(op, x, y, ...) ## Default S3 method: vec_arith(op, x, y, ...) ## S3 method for class 'logical' vec_arith(op, x, y, ...) ## S3 method for class 'numeric' vec_arith(op, x, y, ...) vec_arith_base(op, x, y) MISSING()
op |
An arithmetic operator as a string |
x, y |
A pair of vectors. For |
... |
These dots are for future extensions and must be empty. |
vec_arith_base() is provided as a convenience for writing methods. It
recycles x and y to common length then calls the base operator with the
underlying vec_data().
vec_arith() is also used in diff.vctrs_vctr() method via -.
stop_incompatible_op() for signalling that an arithmetic
operation is not permitted/supported.
See vec_math() for the equivalent for the unary mathematical
functions.
d <- as.Date("2018-01-01")
dt <- as.POSIXct("2018-01-02 12:00")
t <- as.difftime(12, unit = "hours")
vec_arith("-", dt, 1)
vec_arith("-", dt, t)
vec_arith("-", dt, d)
vec_arith("+", dt, 86400)
vec_arith("+", dt, t)
vec_arith("+", t, t)
vec_arith("/", t, t)
vec_arith("/", t, 2)
vec_arith("*", t, 2)