= 5
x = x == 3 # checking if the value of x is 3
x x
[1] FALSE
Let us learn various operators in R.
So far we have been using =
notation to assgin values to an object. For example age = c(10, 11, 12)
indicates we are storing the age of three individuals to an object age
with the assignment sign =
. R has another way to assign object to its values.
Operator | Description | Example |
---|---|---|
= |
Assign the value to the object on the left | x = 10 |
<- |
Assign the value to the object on the left | x <- 10 |
-> |
Assign the value to the object on the right | 10 -> x |
We mostly use the =
or the <-
operators to assign values to ab object. It is recommended to use <-
operator to avoid any confusion in cases such as the following.
= 5
x = x == 3 # checking if the value of x is 3
x x
[1] FALSE
Much readable with <-
operator
= 5
x <- x == 3 # checking if the value of x is 3
x x
[1] FALSE
These are the operators for performing computation with numerical data type
Operator | Description | Sample Code | Output |
---|---|---|---|
+ | Addition | 10 + 10 |
20 |
- | Subtraction | 10 - 8 |
2 |
* | Multiplication | 5 * 10 |
50 |
/ | Division | 50 / 10 |
5 |
^ | Exponent | 10 ^ 2 |
100 |
%/% | Integer division | 20 %/% 3 |
6 |
%% | Modulus (remainder) | 10 %% 3 |
1 |
%*% | Matrix multiplication | see below | see below |
Let us define the two matrices as follows
= matrix(c(10, 20, 30, 40), nrow = 2)
mat_a = matrix(c(1, 2, 3, 4), nrow = 2)
mat_b
mat_a
[,1] [,2]
[1,] 10 30
[2,] 20 40
mat_b
[,1] [,2]
[1,] 1 3
[2,] 2 4
# Element wise multiplication
* mat_b mat_a
[,1] [,2]
[1,] 10 90
[2,] 40 160
# True matrix multiplication
%*% mat_b mat_a
[,1] [,2]
[1,] 70 150
[2,] 100 220
Relational operators return boolean output.
Operator | Description | Example | Output |
---|---|---|---|
> | Greater than | 5 > 2 |
TRUE |
< | Less than | 5 < 2 |
FALSE |
>= | Greater than or equal to | 10 >= 10 |
TRUE |
c(1, 10) >= c(-2, 20) |
TRUE, FALSE | ||
<= | Less than or equal to | 100 <= 100 |
TRUE |
c(1, 10) <= c(-2, 20) |
FALSE, TRUE | ||
== | Equal to | 10 == 10 |
TRUE |
'Male' == 'M' |
FALSE | ||
'Male' == ' Male' |
FALSE | ||
'Male' == 'male' |
FALSE | ||
!= | Not equal to | 10 != 9 |
TRUE |
'Male' != 'male' |
TRUE |
Logical operators also return boolean values TRUE
or FALSE
Operator | Description | Example | Output |
---|---|---|---|
! | Logical NOT | ||
& | Element-wise Logical AND | ||
| | Element-wise Logical OR | ||
&& | Logical AND | ||
|| | Logical OR |
For the &&
and ||
operators, I will not discuss here. But if you are interested, read the documentation which reads.
The “short-circuit” operators && and || are often used as part of the condition in an if statement. Whereas & and | apply element-wise to vectors, && and || apply to vectors of length one, and only evaluate their second argument if necessary.
The full R official documentation can be accessed here.
To negate the condition, we prefix with the !
sign. !=
means not equal to. That is, we are negating the equality. Lets see some examples
= 3
x == 3 # its TRUE x
[1] TRUE
!(x == 3) # when negated, it should be false
[1] FALSE
!= 3 # equivalent to the previous one x
[1] FALSE
= data.frame(
df serial = 1:5,
age = c(10, 11, 20, 30, 32),
sex = c('M', 'F', 'F', 'M', 'M')
)
df
serial age sex
1 1 10 M
2 2 11 F
3 3 20 F
4 4 30 M
5 5 32 M
$age == 10 & df$sex == 'M' df
[1] TRUE FALSE FALSE FALSE FALSE