# Arithmetic Operators in R

In this tutorial you will learn about the arithmetic operators in R. Like most of the programming languages, R programming also has arithmetic operators to perform arithmetic operations.

## Arithmetic Operators in R

Table below shows the list of symbols used as arithmetic operators in R programming language. All these arithmetic operators are binary operators, means they operate on two operands.

Operator Symbol Arithmetic Operation Examples
$+$ Unary plus + x
$-$ Unary minus - x
$+$ Addition x + y
$-$ Subtraction x - y
$\ast$ Multiplication x * y
$/$ Division x / y
$\hat{}$ or $\ast\ast$ Raise to power (exponentiation) x ^ y
$\%/\%$ Integer division x %/% y
$\%\%$ Remainder from integer division (Modulus) x %% y

## Examples of Arithmetic Operators

Suppose we have two variables x and y with respective values 29 and 4.

# Assign the value 29 to variable x
x <- 29
# Assign the value 4 to variable y
y <- 4
# Add the values x and y and display result
x + y    
[1] 33

The first statement assign the value 29 to the variable x and second statement assign the value 4 to the variable y. The third line of code perform addition of two variables x and y and display the result.

### Subtraction

# Subtract y from x and store in subt
subt <- x - y
# Print the value of subt
subt   
[1] 25

The first line of code subtract y from x and store the result in subt. The second line of code display the value of subt on the screen.

### Multiplication

Suppose the height and width of the rectangle is height=4 cm and width=6 cm. Then the area of rectangle is Area = height*width. The following R code create a variable height and width. Compute the area of a rectangle and store the result in Area.rect.

# Assign 4 to height
height <- 4
# Assign6 to weight
width <- 6
# Multiply the height by width and store in Area.rect
Area.rect <- height * width
# Print the value of Area.rect
Area.rect   
[1] 24

### Division

Suppose we have two variables x and y with respective values 29 and 4.

# Assign the value 29 to variable x
x <- 29
# Assign the value 4 to variable y
y <- 4
# Divide the value x by y and store in div
div <- x/y
# Print the value of div
div   
[1] 7.25

Above R code create a variable x and y with respective values 29 and 4. Next line of R code divide x by y and store the result in div.

### Exponentiation

Suppose the radius of the circle is radius = 5 cm. The following R code create a variable radius and compute the area of a circle with radius = 5 cm.

# Assign 5 to radius
# compute area of circle
# Print the value of area.circle
area.circle   
[1] 78.53982

Note that pi is a built-in constant in R which is 22/7=3.141593...

Check built-in constant.

### Integer Division

Suppose we have two variables x and y with respective values 29 and 4.

# Assign the value 29 to variable x
x <- 29
# Assign the value 4 to variable y
y <- 4
# integer division of x by y and store in integer_div
integer_div <- x %/% y
# Print the value of integer_div
integer_div   
[1] 7

Above R code perform integer division of x by y (i.e., 29 by 4) and the result is stored in integer_div. The second line of code display the value of integer_div on the screen.

### Remainder from Integer Division

Suppose we have two variables x and y with respective values 29 and 4.

# Assign the value 29 to variable x
x <- 29
# Assign the value 4 to variable y
y <- 4
# remainder from integer division of x by y
modulus <- x %% y
# print the value of modulus
modulus  
[1] 1

The first line of code perform integer division of x by y and store the result of the remainder in modulus. The second line of code display the value of modulus on the screen.

# integer division of 16 by 4 and display remainder
16 %% 4 
[1] 0

In the above code as 16 is completely divisible by 4, the remainder will be 0.

## Arithmetic operations on Vector and scalar

R performs vectorized computations. Vectorized computations is any arithmetic computation that when applied to a vector operates on all the elements of vector. That is arithmetic operations on vectors are performed element-wise.

To perform arithmetic operations between a vector and a scalar, R uses Recycling Rule.

x<-c(1,2,3,4)
x
[1] 1 2 3 4

The first line of code combine the arguments 1,2,3,4 to a vector x. The second line of code display the result.

Remember that the c() function is known as **concatenation** or **combine** which combines its arguments.

In the following R code, x is a vector and 5 is a scalar. To add 5 to x, using recycling rule R adds 5 to every elements in x.

# 5 is added to each element of x
x + 5 
[1] 6 7 8 9

### Subtraction

# 2 is subtracted from each element of x
x - 2 
[1] -1  0  1  2

From every elements in vector x subtract the scalar 2 and display the result as a vector.

### Multiplication

# each element of x is multiplied by 2
x * 2 
[1] 2 4 6 8

Every elements in vector x is multiplied by scalar 2 and display the result as a vector.

### Division

#  each element of x is divided by 2
x / 2  
[1] 0.5 1.0 1.5 2.0

Every elements in vector x is divided by scalar 2 and display the result as a vector.

### Integer Division

# integer division on dividing each element by 2
x %/% 2 
[1] 0 1 1 2

Perform integer division on every elements in vector x by scalar 2 and display the result as a vector.

### Remainder from Integer Division

# Remainder from integer division
x %% 2 
[1] 1 0 1 0

Perform integer division on every elements in vector x by scalar 2 and display the result as a vector.

### Exponentiation

# Exponentiation
x ^ 2
[1]  1  4  9 16

Perform the power of scalar 2 on every element in vector x and display the result as a vector.

## Arithmetic operations on Vectors of unequal length

As R perform vectorized arithmetic operations, some problems arises while performing arithmetic operations on two vectors of unequal length. In such a situation R display a warning message but perform arithmetic operations using recycling rule. The recycling rule states that the shorter vector is replicated enough number of times so that the results has the length of the longer vector.

x<-c(1,2,3,4)
y<-c(5,6,7)

x + y
Warning in x + y: longer object length is not a multiple of shorter object
length
[1]  6  8 10  9

As y is a shorter vector than x, R recycled the elements of y as (5,6,7,5) and then perform element-wise addition.

### Subtraction

x - y
Warning in x - y: longer object length is not a multiple of shorter object
length
[1] -4 -4 -4 -1

As y is a shorter vector than x, R recycled the elements of y as (5,6,7,5) and then perform element-wise subtraction.

All other arithmetic operations uses similar recycling rule to perform arithmetic operations.

## Endnote

In this tutorial you learned about arithmetic operators in R and how R uses recycling rule while performing arithmetic operations.