R has many operators to carry out different mathematical and logical operations. Operators perform tasks including arithmetic, logical and bitwise operations.
Type of operators in R
Operators in R can mainly be classified into the following categories:
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Assignment Operators
R Arithmetic Operators
These operators are used to carry out mathematical operations like addition and multiplication. Here is a list of arithmetic operators available in R.
Operator | Description |
---|---|
+ | Addition |
- | Subtraction |
* | Multiplication |
/ | Division |
^ | Exponent |
%% | Modulus(Remainder from division) |
%/% | Integer Division |
Let's look at an example illustrating the use of the above operators:
x <- 5
y <- 16
x + y
x - y
x * y
y / x
y %/% x
y %% x
y ^ x
Output
[1] 21 [1] -11 [1] 80 [1] 3.2 [1] 3 [1] 1 [1] 1048576
R Relational Operators
Relational operators are used to compare between values. Here is a list of relational operators available in R.
Operator | Description |
---|---|
Less than | |
> | Greater than |
Less than or equal to | |
>= | Greater than or equal to |
== | Equal to |
!= | Not equal to |
Let's see an example for this:
x <- 5
y <- 16
x < y
x > y
x <= 5
y >= 20
y == 16
x != 5
Output
[1] TRUE [1] FALSE [1] TRUE [1] FALSE [1] TRUE [1] FALSE
Operation on Vectors
The above mentioned operators work on vectors. The variables used above were in fact single element vectors.
We can use the function c()
(as in concatenate) to make vectors in R.
All operations are carried out in element-wise fashion. Here is an example.
x <- c(2, 8, 3)
y <- c(6, 4, 1)
x + y
x > y
Output
[1] 8 12 4 [1] FALSE TRUE TRUE
When there is a mismatch in length (number of elements) of operand vectors, the elements in the shorter one are recycled in a cyclic manner to match the length of the longer one.
R will issue a warning if the length of the longer vector is not an integral multiple of the shorter vector.
x <- c(2, 1, 8, 3)
y <- c(9, 4)
x + y
x - 1
x + c(1, 2, 3)
Output
[1] 11 5 17 7 [1]1 0 7 2 [1] 3 3 11 4 Warning message: In x + c(1, 2, 3) : longer object length is not a multiple of shorter object length
R Logical Operators
Logical operators are used to carry out Boolean operations like AND
, OR
etc.
Operator | Description |
---|---|
! | Logical NOT |
& | Element-wise logical AND |
&& | Logical AND |
| | Element-wise logical OR |
|| | Logical OR |
Operators &
and |
perform element-wise operation producing result having length of the longer operand.
But &&
and ||
examines only the first element of the operands resulting in a single length logical vector.
Zero is considered FALSE
and non-zero numbers are taken as TRUE
. Let's see an example for this:
x <- c(TRUE, FALSE, 0, 6)
y <- c(FALSE, TRUE, FALSE, TRUE)
!x
x & y
x && y
x | y
x || y
Output
[1] FALSE TRUE TRUE FALSE [1] FALSE FALSE FALSE TRUE [1] FALSE [1] TRUE TRUE FALSE TRUE [1] TRUE
R Assignment Operators
These operators are used to assign values to variables.
Operator | Description |
---|---|
Leftwards assignment | |
->, ->> | Rightwards assignment |
The operators <-
and =
can be used, almost interchangeably, to assign to variables in the same environment.
The <<-
operator is used for assigning to variables in the parent environments (more like global assignments). The rightward assignments, although available, are rarely used.
x <- 5
x
x <- 9
x
10 -> x
x
Output
[1] 5 [1] 9 [1] 10
Check out these examples to learn more: