我有一系列嵌套的if..else
语句,我想用case语句替换它。现在R有一个简单的开关操作符,如下所示:
switch (i) {
case 1:
// action 1
break;
case 2:
// action 2
break;
case 3:
// action 3
break;
default:
// action 4
break;
}
但是,我的案例是更复杂的条件,而不是简单的文字值。
我需要像
这样的东西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;
}
有人知道R中是否有可能出现这种情况?它会使我正在编写的代码更容易阅读。
据我所知,这个问题 在这里回答:How to use the switch statement in R functions?
由于
答案 0 :(得分:1)
也许这不是最佳解决方案,但您可以尝试使用嵌套的ifelse
函数:
ifelse(i %in% someList, action1,
ifelse(i %in% someOtherList, action2,
ifelse(i > 42, action 3, default_action4)))