 # R if...else

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

``` "The number is positive"
 "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

` "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:

` "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

` "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

` "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

` "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 {
... .. ...
}``````