R switch: How to use switch() function in r

switch statement enables a variable to be tested for equality against a list of values. The value of the switch() function is called a case, and the variable being switched on is checked for each case.

The nested if…else statement in R is exceptionally beneficial when you need to execute a particular code block when the condition is satisfied. If you want to select values based only on the condition, use the switch() function in R.

R switch

The switch in r is a built-in function that tests the expression against the elements of a list. If the value evaluated from the expression matches an item from the list, a corresponding value is returned. The switch() function takes an expression and list as arguments and returns the result based on the case.

Syntax

switch (expression, list)

Parameters

Here, the expression parameter is evaluated, and based on this value, the corresponding item in the list is returned.

If the value evaluated from the expression matches more than one element, the switch() function returns the first matched element.

Keypoints of the switch in R

  1. It is an expression type with a character string always matched to the listed cases.
  2. It is an expression that is not a character string, and then this expression is coerced to an integer.
  3. For multiple matches, the first match element will be used.
  4. No default argument case is available there in the R switch case.
  5. An unnamed case can be used if there is no matched case.

Example

data <- switch(
 2,
 "Millie",
 "Sadie",
 "Winona",
 "Robin"
)
print(data)

Output

[1] "Sadie"

The switch() function takes mainly two arguments: expression and list.

In our example, the expression is 2, and the list is the names of actresses. That means it returns the 2nd actress who is Sadie. The switch() function returns the corresponding item to the numeric value evaluated.

If the cases are values like a character vector, and the expression is evaluated to a number, then the expression’s result is used as an index to select the case.

If the numeric value is out of range (greater than the number of elements in the list or smaller than 1), NULL is returned.

data <- switch(
 5,
 "Millie",
 "Sadie",
 "Winona",
 "Robin"
)
print(data)

Output

NULL

In this example, there is no 5th element in the list, so it returns NULL.

switch() function in r with a string expression

You can use the string as an expression in the switch() function in R Language.

show <- switch(
"name",
"name" = "Paranormal",
"region" = "Arabic",
"platform" = "Netflix"
)
print(show)

Output

[1] "Paranormal"

Here, “name” is a string that matches the first element of the list. Hence, we are getting “Paranormal” as an output.

If you pass the platform as an argument, it will return Netflix.

We will get an error as a result only when there is more than one case statement with a wrong spelling, or that expression is not in the list, or the corresponding value of the case statement is missing.

R switch() with a mix values

We can pass integers and strings as different cases to the switch() function. In this case, it will first perform the operations between the variables, and whatever output we get, it will execute that case based on the output number.

x <- 0
y <- 1
mix <- switch(x + y,
 "Buy Reliance",
 "Buy TCS",
 "Buy HCL",
 "Buy Infosys",
)
mix

Output

[1] "Buy Reliance"

In this example, we pass two integer variables – whose values are 0 and 1, and inside the switch statement, the first argument is the sum of those variables’ values. So the sum of 0 and 1 is 1, and that’s why it returns the first case, “Buy Reliance“.

Conclusion

The switch() function in R follows the mapping approach and searches over a list of values. If more than one match for the specific value, the switch() function will return the first match, found of the value matched with the expression.

Switch statements are more efficient if we compare them with the If-Else statement.

See also

R for loop

R while loop

Apply in R

lapply in R

Leave a Comment