Kar*_*arl 5 r switch-statement
我有一系列嵌套if..else
语句,我想用 case 语句替换它们。现在 R 有一个简单的 switch 运算符,如下所示:
switch (i) {
case 1:
// action 1
break;
case 2:
// action 2
break;
case 3:
// action 3
break;
default:
// action 4
break;
}
Run Code Online (Sandbox Code Playgroud)
然而,我的情况是更复杂的条件,而不是简单的文字值。
我需要类似的东西
switch {
case i %in% someList:
// action 1
break;
case i %in% someOtherList:
// action 2
break;
case i > 42:
// action 3
break;
default:
// action 4
break;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道R中是否可以实现这样的事情?这将使我正在编写的代码更易于阅读。
据我所知,这个问题没有在这里得到解答:How to use the switch statements in R function?
谢谢
也许这不是最好的解决方案,但您可以尝试使用嵌套ifelse
函数:
ifelse(i %in% someList, action1,
ifelse(i %in% someOtherList, action2,
ifelse(i > 42, action 3, default_action4)))
Run Code Online (Sandbox Code Playgroud)