switch                 package:base                 R Documentation

Select One of a List of Alternatives

Description:

     `switch' evaluates `EXPR' and accordingly chooses one of the
     further arguments (in `...').

Usage:

     switch(EXPR, ...)

Arguments:

    EXPR: an expression evaluating to a number or a character string.

     ...: the list of alternatives, given explicitly.

Details:

     If the value of `EXPR' is an integer between 1 and `nargs()-1'
     then the corresponding element of `...' is evaluated and the
     result returned.

     If `EXPR' returns a character string then that string is used to
     match the names of the elements in `...'.  If there is an exact
     match then that element is evaluated and returned if there is one,
     otherwise the next element is chosen, e.g., `switch("cc", a=1,
     cc=, d=2)' evaluates to `2'.

     In the case of no match, if there's a further argument in `switch'
     that one is returned, otherwise `NULL'.

Examples:

     centre <- function(x, type) {
       switch(type,
             mean = mean(x),
             median = median(x),
             trimmed = mean(x, trim = .1))
     }
     x <- rcauchy(10)
     centre(x, "mean")
     centre(x, "median")
     centre(x, "trimmed")

     ccc <- c("b","QQ","a","A","bb")
     for(ch in ccc) cat(ch,":",switch(ch, a=1,    b=2:3),            "\n")
     for(ch in ccc) cat(ch,":",switch(ch, a=,A=1, b=2:3, "Otherwise: last"),"\n")

     ## Numeric EXPR don't allow an `otherwise':
     for(i in c(-1:3,9))  print(switch(i, 1,2,3,4))

