R Variables

Creating Variables in R

Variables are containers for storing data values.

R does not have a command for declaring a variable. A variable is created the moment you first assign a value to it. To assign a value to a variable, use the <- sign. To output (or print) the variable value, just type the variable name:


name <- "John"
age <- 40

name   # output "John"
age    # output 40
Try it Yourself »

From the example above, name and age are variables, while "John" and 5 are values.

In other programming language, it is common to use = as an assignment operator. In R, we can use both = and <- as assignment operators.

However, <- is preferred in most cases because the = operator can be forbidden in some context in R.

Print / Output Variables

Compared to many other progamming languages, you do not have to use a function to print/output variables in R. You can just type the name of the variable:


name <- "John Doe"

name # auto-print the value of the name variable
Try it Yourself »

However, R does have a print() function available if you want to use it. This might be useful if you are familiar with other programming languages, such as Python, which often use a print() function to output variables.


name <- "John Doe"

print(name) # print the value of the name variable
Try it Yourself »

And there are times you must use the print() function to output code, for example when working with for loops (which you will learn more about in a later chapter):


for (x in 1:10) {
Try it Yourself »

Conclusion: It is up to your if you want to use the print() function or not to output code. However, when your code is inside an R expression (for example inside curly braces {} like in the example above), use the print() function if you want to output the result.

Concatenate Elements

You can also concatenate, or join, two or more elements, by using the paste() function.

To combine both text and a variable, R uses comma (,):


text <- "awesome"

paste("R is", text)
Try it Yourself »

You can also use , to add a variable to another variable:


text1 <- "R is"
text2 <- "awesome"

paste(text1, text2)
Try it Yourself »

For numbers, the + character works as a mathematical operator:


num1 <- 5
num2 <- 10

num1 + num2
Try it Yourself »

If you try to combine a string (text) and a number, R will give you an error:


num <- 5
text <- "Some text"

num + text


Error in num + text : non-numeric argument to binary operator
Try it Yourself »

Multiple Variables

R allows you to assign the same value to multiple variables in one line:


# Assign the same value to multiple variables in one line
var1 <- var2 <- var3 <- "Orange"

# Print variable values
Try it Yourself »

Variable Names

A variable can have a short name (like x and y) or a more descriptive name (age, carname, total_volume). Rules for R variables are:
  • A variable name must start with a letter and can be a combination of letters, digits, period(.)
    and underscore(_). If it starts with period(.), it cannot be followed by a digit.
  • A variable name cannot start with a number or underscore (_)
  • Variable names are case-sensitive (age, Age and AGE are three different variables)
  • Reserved words cannot be used as variables (TRUE, FALSE, NULL, if...)
# Legal variable names:
myvar <- "John"
my_var <- "John"
myVar <- "John"
MYVAR <- "John"
myvar2 <- "John"
.myvar <- John

# Illegal variable names:
2myvar <- "John"
my-var <- "John"
my var <- "John"
_my_var <- "John"
my_v@ar <- "John"
TRUE <- "John"

Remember that variable names are case-sensitive!