Switch in r
switch(statement,item1,item2,item3,…,itemN, default)
# by name with complex named expression switch("bar", foo={"one"}, bar={"two"}) [1] "two" # by index switch(1, "one", "two") [1] "one" # by index with complex expressions switch(2, {"one"}, {"two"}) [1] "two" # by index with complex named expression switch(1, foo={"one"}, bar={"two"}) [1] "one"
uFuncSwitch <- function(x){ \tswitch(x, \t\t"+" = str_c("Addition : ", num1 + num2) %>% print(), \t\t"-" = str_c("Subtraction : ", num1 - num2) %>% print(), \t\tprint("choose another operator") \t) } > num1 <- 6 > num2 <- 4 > uFuncSwitch('+') [1] "Addition : 10" > uFuncSwitch('*') [1] "choose another operator"
https://adv-r.hadley.nz/control-flow.html#switch
x_option <- function(x) { switch(x, a = "option 1", b = "option 2", c = "option 3", stop("Invalid `x` value") ) }
uFuncSwitch <- function(x){ \tswitch(x, \t\tstr_c("Addition : ", num1 + num2) %>% print(), \t\tstr_c("Subtraction : ", num1 - num2) %>% print(), \t\tprint("choose another operator") \t) } > num1 <- 6 > num2 <- 4 > uFuncSwitch(1) [1] "Addition : 10" > uFuncSwitch(1.6) [1] "Addition : 10" > uFuncSwitch(2.1) [1] "Subtraction : 2" > uFuncSwitch(3) [1] "choose another operator"