The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

roperators

CRAN version metacran downloads License: MIT R-CMD-check

Small, friendly operators and helpers that let your R code read the way you already think it.

Which would you rather write?

base R roperators  ← cleaner
paste0(“Hi”, name, “, you have”, n) f(“Hi {name}, you have {n}”)
c(1, NA, 3) == c(1, NA, 4) c(1, NA, 3) %==% c(1, NA, 4)
isTRUE(all.equal(0.1 + 0.1 + 0.1, 0.3)) (0.1 + 0.1 + 0.1) %~=% 0.3
x[is.na(x)] <- 0 x %na<-% 0
ifelse(b == 0, NA, a / b) a %/0% b

On the package site this is an interactive taste test — you pick the line you’d rather write, and it tells you if you’ve got good taste. →

All base R, zero dependencies — just operators and helpers that say what you mean. (Pronounced rop-er-ators, not r-operators.)

Installation

install.packages("roperators")                       # released, from CRAN
remotes::install_github("BenWiseman/roperators")      # or the dev version

Find the right tool

On the package website this is an interactive finder — search by what you’re trying to do (“join two strings”, “missing values”, “read a file”…) and jump straight to the docs. The full reference lists everything.

At a glance

You want… Reach for
String concat / subtract %+% / %-%
String repeat / count %s*% / %s/%
In-place maths %+=% %-=% %*=% %/=% %^=%
Fill NAs / regex edit in place %na<-% / %regex=% / %regex<-%
NA-aware (in)equality %==% %>=% %<=%
Floating-point equality %~=% %>~% %<~%
Strict (value + class) equality %===%
Between (excl / incl) %><% / %>=<%
Not-in / xor / all-or-nothing %ni% / %xor% / %aon%
String interpolation f()
Inline error fallback %else%
Safe divide / tolerance %/0% / %+-%
Fuzzy string match %~%

Next steps

A quick note on shared names: %+% is also ggplot2’s, and %like%-style matching is data.table’s. If you load those too, use the namespaced form (roperators::%+%) where it matters.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.