Operators

Many functions in R can be written as operators. An operator is a function that takes one or two arguments and can be written without parentheses.

One familiar set of operators is binary operators for arithmetic. R supports arithmetic operations:

> # addition
> 1 + 19
[1] 20

> # multiplication
> 5 * 4
[1] 20

R also includes notation for other mathematical operations, including moduli, exponents, and integer division:

> # modulus
> 41 %% 21
[1] 20?

> # exponents
> 20 ^ 1
[1] 20

> # integer division
> 21 %/% 2
[1] 10

You can define your own binary operators. User-defined binary operators consist of a string of characters between two % characters. To do this, create a function of two variables and assign it to an appropriate symbol. For example, let’s define an operator %myop% that doubles each operand and then adds them together:

> `%myop%` <- function(a, b) {2*a + 2*b}
> 1 %myop% 1
[1] 4
> 1 %myop% 2
[1] 6

Some language constructs are also binary operators. For example, assignment, indexing, and function calls are binary operators:[19]

> # assignment is a binary operator
> # the left side is a symbol, the right is a value
> x <- c(1, 2, 3, 4, 5)

> # indexing is a binary operator too
> # the left side is a symbol, the right is an index
> x[3]
[1] 3

> # a function call is also a binary operator
> # the left side is a symbol pointing to the function argument
> # the right side are the arguments
> max(1, 2)
[1] 2

There are also unary operators that take only one variable. Here are two ...

Get R in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.