【发布时间】:2012-09-04 22:32:41
【问题描述】:
我正在尝试编写一个 R 脚本来根据在范围内拟合值来评估不同的表达式。这个想法是,如果 Length 在一个范围内,它将以一种方式进行评估,如果它在一个较长的范围内,它将以不同的方式进行评估。
我可以使用 if/else 语句来完成这项工作,但它非常难看,而且我相信一定有更好的方法......这是有效的代码。
Length=8.2
if (Length<1)
mode="Walk"
else if (1<=Length & Length <5)
mode="bike"
else if (5<=Length & Length <10)
mode="drive"
else if (Length>=10)
mode="fly"
我一直在尝试用 switch 函数做一些事情,但它似乎只适用于文本或整数......有没有办法让 switch 语句在每种情况下进行评估,比如这样?
Length=3.5
switch(Length,
(Length<1) mode="Walk"
(1<=Length & Length <5) mode="bike"
(5<=Length & Length <10) mode="drive"
(Length=>10) mode="fly"
)
【问题讨论】:
-
不知道是否有帮助,但我建议对您的“丑陋”代码进行编辑,使其不那么丑陋。
-
这里给出了使用
switch()和match()的解决方案(2014 年晚些时候):stackoverflow.com/a/27279612/1103558
标签: r if-statement switch-statement