# What is the Technical Difference Between “=” and “<-" in R?

When doing data science, it is often necessary when processing data to assign the values that you calculate to variables. Now r programming offers two ways of assigning values to variables.

Description

When writing a computer program for data analysis, the program usually uses lots of code expressions. Within this code, expressions are often found in subexpressions that contain code that could be used outside the main expression. The subexpression will usually contain one or more operators that tell the program what to do with the data. Two of these operators are the assign and equal operators. The assign operator (<-) assigns the value to the variable. The equals operator (=) equates the variable to a value.

### Explanation

Both the assign and equal operators can be used anywhere. This can be done as separate expressions or subexpressions. In practice, they are essentially the same operator in that they can be used interchangeably. However, there is a subtle difference in that they mean different things. Because of these differences, they can produce different results when used inside a function.

### Examples

Here are three examples of code using both operators.

> x = 7
> x
[1] 7

> x <- 7
> x
[1] 7

Here are examples of a piece of r code using both operators to assign a single number to a variable.

> x = 35
> y = 5
> z = x/y
> z
[1] 7

> x <- 35
> y <- 5
> z <- x/y
> z
[1] 7

Here are examples of a piece of r code using both operators to assign the results of a calculation to a variable.

> df1 = data.frame(A = c(1, 2, 3, 4, 5, 6, 7),
+ B = c(1, 2, 3, 4, 1, 2, 3),
+ C = c(“A”, “B”, “C”, “D”, “E”, “F”, “G”),
+ D = c(“A”, “B”, “C”, “D”, “A”, “B”, “C”))
> df1
A B C D
1 1 1 A A
2 2 2 B B
3 3 3 C C
4 4 4 D D
5 5 1 E A
6 6 2 F B
7 7 3 G C

> df2 <- data.frame(A = c(1, 2, 3, 4, 5, 6, 7),
+ B = c(1, 2, 3, 4, 1, 2, 3),
+ C = c(“A”, “B”, “C”, “D”, “E”, “F”, “G”),
+ D = c(“A”, “B”, “C”, “D”, “A”, “B”, “C”))
> df2
A B C D
1 1 1 A A
2 2 2 B B
3 3 3 C C
4 4 4 D D
5 5 1 E A
6 6 2 F B
7 7 3 G C

Here are examples of a piece of r code using both operators to assign a data frame to a variable.

### Application

These are top level operators and they are highly environment allowed because they can be used anywhere. When doing an analyst job, they can be used to equate the values of an entire braced list to a variable. If you are going to need to explain your program as part of an interview question, it would be best to use the equate operator because it is more easily understood by someone who does not know the r language.

Because in practice these operators are essentially interchangeable, the one key rule for their use is to use them consistently. In other words, use one operator or the other but not both when either one can be used.

Scroll to top