# R if...else

In this tutorial, you will learn about if...else statements in R with the help of examples.

In computer programming, the if statement allows us to create a decision making program.

A decision making program runs one block of code under a condition and another block of code under different conditions. For example,

• If age is greater than 18, allow the person to vote.
• If age is not greater than 18, don't allow the person to vote.

# R if Statement

The syntax of an if statement is:

if (test_expression) {
# body of if
}

Here, the test_expression is a boolean expression. It returns either True or False. If the test_expression is

• True - body of the if statement is executed
• False - body of the if statement is skipped

### Example: R if Statement

x <- 3

# check if x is greater than 0
if (x > 0) {
print("The number is positive")
}

print("Outside if statement")

Output

[1] "The number is positive"
[1] "Outside if statement"

In the above program, the test condition x > 0 is true. Hence, the code inside parenthesis is executed.

## R if...else Statement

We can also use an optional else statement with an if statement. The syntax of an if...else statement is:

if (test_expression) {
# body of if statement
} else {
# body of else statement
}

The if statement evaluates the test_expression inside the parentheses.

If the test_expression is True,

• body of if is executed
• body of else is skipped

If the test_expression is False

• body of else is executed
• body of if is skipped

### Example: R if...else Statement

age <- 15

# check if age is greater than 18
if (age > 18) {
print("You are eligible to vote.")
} else {
print("You cannot vote.")
}

Output

[1] "You cannot vote."

In the above statement, we have created a variable named age. Here, the test expression is

age > 18

Since age is 16, the test expression is False. Hence, code inside the else statement is executed.

If we change the variable to another number. Let's say 31.

age <- 31

Now, if we run the program, the output will be:

[1] "You are eligible to vote."

### Example: Check Negative and Positive Number

x <- 12

# check if x is positive or negative number
if (x > 0) {
print("x is a positive number")
} else {
print("x is a negative number")
}

Output

[1] "x is a positive number"

Here, since x > 0 evaluates to TRUE, the code inside the if block gets executed. And, the code inside the else block is skipped.

## R if...else if...else Statement

If you want to test more than one condition, you can use the optional else if statement along with your if...else statements. The syntax is:

if(test_expression1) {
# code block 1
} else if (test_expression2){
# code block 2
} else {
# code block 3
}

Here,

• If test_expression1 evaluates to True, the code block 1 is executed.
• If test_expression1 evaluates to False, then test_expression2 is evaluated.
• If test_expression2 is True, code block 2 is executed.
• If test_expression2 is False, code block 3 is executed.

### Example: R if...else if...else Statement

x <- 0

# check if x is positive or negative or zero
if (x > 0) {
print("x is a positive number")
} else if (x < 0) {
print("x is a negative number")
} else {
print("x is zero")
}

Output

[1] "x is zero"

In the above example, we have created a variable named x with the value 0. Here ,we have two test expressions:

• if (x > 0) - checks if x is greater than 0
• else if (x < 0) - checks if x is less than 0

Here, both the test conditions are False. Hence, the statement inside the body of else is executed.

## Nested if...else Statements in R

You can have nested if...else statements inside if...else blocks in R. This is called nested if...else statement.

This allows you to specify conditions inside conditions. For example,

x <- 20

# check if x is positive
if (x > 0) {

# check if x is even or odd
if (x %% 2 == 0) {
print("x is a positive even number")
} else {
print("x is a positive odd number")
}

# execute if x is not positive
} else {

# check if x is even or odd
if (x %% 2 == 0) {
print("x is a negative even number")
} else {
print("x is a negative odd number")
}
}

Output

[1] "x is a positive even number"

In this program, the outer if...else block checks whether x is positive or negative. If x is greater than 0, the code inside the outer if block is executed.

Otherwise, the code inside the outer else block is executed.

if (x > 0) {
... .. ...
} else {
... .. ...
}

The inner if...else block checks whether x is even or odd. If x is perfectly divisible by 2, the code inside the inner if block is executed. Otherwise, the code inside the inner else block is executed.

if (x %% 2 == 0) {
... .. ...
} else {
... .. ...
}