
Last chance! 50% off unlimited learning
Sale ends in
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)# S3 method for default
vec_arith(op, x, y)
# S3 method for logical
vec_arith(op, x, y)
# S3 method for numeric
vec_arith(op, x, y)
vec_arith_base(op, x, y)
MISSING()
An arithmetic operator as a string
A pair of vectors. For !
, unary +
and unary -
, y
will be
a sentinel object of class MISSING
, as created by MISSING()
.
vec_base_arith()
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.
# NOT RUN {
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)
# }
Run the code above in your browser using DataLab