Table of Contents

    Switch Statement in R Programming Language: Syntax and Examples

    Switch Statement in R Programming Language: Syntax and Examples

    switch statement allows a variable to be tested for equality against a list of values. Each value is called a case, and the variable being switched on is checked for each case.

    Syntax

    The basic syntax for creating a switch statement in R is ?

    switch(expression, case1, case2, case3....)

    The following rules apply to a switch statement ?

    • If the value of expression is not a character string it is coerced to integer.

    • You can have any number of case statements within a switch. Each case is followed by the value to be compared to and a colon.

    • If the value of the integer is between 1 and nargs()?1 (The max number of arguments)then the corresponding element of case condition is evaluated and the result returned.

    • If expression evaluates to a character string then that string is matched (exactly) to the names of the elements.

    • If there is more than one match, the first matching element is returned.

    • No Default argument is available.

    • In the case of no match, if there is a unnamed element of ... its value is returned. (If there is more than one such argument an error is returned.)

    Flow Diagram

    R switch statement

    Example

    x

    When the above code is compiled and executed, it produces the following result ?

    [1] "third"

    This is a example of another way using function

    Program

    
    use.switch <- function(x)
    {
      
      switch(x,
             "a" = "First",
             "b" = "Second",
             "c" = "Third",
             "z" = "Last",
             "others"
             )
      
    }
    

    Output

    
    > use.switch("a")
    [1] "First"
    > use.switch("b")
    [1] "Second"
    > use.switch("r")
    [1] "others"
    > use.switch("z")
    [1] "Last"
    > use.switch(1)
    [1] "First"
    > use.switch(2)
    [1] "Second"
    > use.switch(3)
    [1] "Third"
    > use.switch(4)
    [1] "Last"
    > use.switch(5)
    [1] "others"
    > use.switch(6)
    > is.null(use.switch(6))
    [1] TRUE