Often, you need to execute some statements only when some condition is met.

You can use following conditional statements in your code to do this.

• `if` Statement: use it to execute a block of code, if a specified condition is true
• `else` Statement: use it to execute a block of code, if the same condition is false
• `else if` Statement: use it to specify a new condition to test, if the first condition is false
• `ifelse()` Function: use it when to check the condition for every element of a vector

## The if Statement

Use `if` statement to execute a block of code, if the condition is true.

### Making a simple comparison

Example:

``````> x <- 7
> y <- 5
> if(x > y) {
+   print("x is greater")
+ }
 "x is greater"
``````

Likewise, you can use following comparison operators to compare two values:

 Operator Meaning Example == Equals if (x == y) != Not equals if (x != y) > Greater than if (x > y) >= Greater than or equal to if (x >= y) < Less than if (x < y) <= Less than or equal to if (x <= y)

### More Examples

In R, any non-zero value is considered TRUE, whereas a zero is considered FALSE. That’s why all the below if statements are valid.

Examples:

``````> # mathematical expression
> x <- 7
> y <- 5
> if(x + y) {
+   print("True")
+ }
 "True"
``````
``````> # any non-zero value
> if(-3) {
+   print("True")
+ }
 "True"
``````

## if Statement Without Curly Braces

If you have only one statement to execute, you can skip curly braces.

Example:

``````> x <- 7
> y <- 5
> if(x > y) print("x is greater")
 "x is greater"
``````

## Nested if Statement

You can write one `if` statement inside another `if` statement to test more than one condition and return different results.

Example:

``````> x <- 7
> y <- 5
> z <- 2
> if(x > y) {
+   print("x is greater than y")
+   if(x > z) print("x is greater than y and z")
+ }
 "x is greater than y"
 "x is greater than y and z"
``````

## The else Statement

Use `else` statement to execute a block of code, if the condition is false.

### Syntax

condition: is any expression that evaluates to either true or false.

if statement: specifies a block of statements if the condition is true.

else statement: specifies a block of statements if the condition is false.

### A Simple if-else comparison

Example:

``````> x <- 7
> y <- 5
> if(x > y) {
+   print("x is greater")
+ } else {
+   print("y is greater")
+ }
 "x is greater"
``````

## The else if Statement

Use `else if` statement to specify a new condition to test, if the first condition is false.

### Syntax

condition: is any expression that evaluates to either true or false.

if statement: specifies a block of statements if the condition is true.

elif statement: specifies a new condition to test, if the first condition is false.

else statement: specifies a block of statements if the condition is false.

### Using else-if Statement

Example:

``````> x <- 5
> y <- 5
> if(x > y) {
+   print("x is greater")
+ } else if(x < y) {
+   print("y is greater")
+ } else {
+   print("x and y are equal")
+ }
 "x and y are equal"
``````

In R, you can use as many `else if` statements as you want in your program. There’s no limit.

However, it’s not a best practice when you want to make series of decisions. You can use switch() function as an efficient way.

## Multiple Conditions

To join two or more conditions into a single `if` statement, use logical operators viz. `&&` (and), `||` (or) and `!` (not).

`&&` (and) expression is True, if all the conditions are true.

Example: Test multiple conditions with and operator ‘&&’

``````> x <- 7
> y <- 5
> z <- 2
> if(x > y && x > z) {
+   print("x is greater")
+ }
 "x is greater"
``````

`||` (or) expression is True, if at least one of the conditions is True.

Example: Test multiple conditions with or operator ‘||’

``````> x <- 7
> y <- 5
> z <- 9
> if(x > y || x > z) {
+   print("x is greater than y or z")
+ }
 "x is greater than y or z"
``````

`!` (not) expression is True, if the condition is false.

Example: Test multiple conditions with not operator ‘!’

``````> x <- 7
> y <- 5
> if(!(x < y)) {
+   print("x is greater")
+ }
 "x is greater"
``````

## One Line If…Else

If you have only one statement to execute, one for if , and one for else , you can put it all on the same line:

### Examples

Example:

``````> x <- 7
> y <- 5
> if (x > y) print("x is greater") else print("y is greater")
 "x is greater"
``````

You can also use it to select variable assignment.

Example:

``````> x <- 7
> y <- 5
> max <- if (x > y) x else y
> max
 7
``````

## The ifelse() Function

In R, conditional statements are not vector operations. They deal only with a single value.

If you pass in, for example, a vector, the `if` statement will only check the very first element and issue a warning.

Example:

``````> v <- 1:6
> if(v %% 2) {
+   print("odd")
+ } else {
+   print("even")
+ }
 "odd"
Warning message:
In if (v%%2) { :
the condition has length > 1 and only the first element will be used
``````

The solution to this is the `ifelse()` function.

The `ifelse()` function checks the condition for every element of a vector and selects elements from the specified vector depending upon the result.

Here’s the syntax for the `ifelse()` function.

### Examples

Example:

``````> v <- c(1,2,3,4,5,6)
> ifelse(v %% 2 == 0, "even", "odd")
 "odd"  "even" "odd"  "even" "odd"  "even"
``````

You can even use this function to choose values from two vectors.

Example:

``````> v1 <- c(1,2,3,4,5,6)
> v2 <- c("a","b","c","d","e","f")
> ifelse(c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE), v1, v2)
 "1" "b" "3" "d" "5" "f"
``````