Estoy tratando de escribir un guión R para evaluar diferentes expresiones basadas en ajustar un valor dentro de los rangos. La idea es que si Length está dentro de un rango, se evaluará de una manera, y si se trata de un rango más largo, se evaluará de manera diferente.Sentencia de cambio R en las comparaciones
Puedo hacer que esto funcione con sentencias if/else, pero es bastante feo, y estoy seguro de que debe haber una manera mejor ... aquí está el código que funciona.
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"
que he estado tratando de hacer que algo funcione con el funcionamiento del detector, pero parece funcionar sólo con texto o números enteros ... ¿hay una manera de tener una sentencia switch que lleva a cabo evaluaciones en cada caso, como esto?
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"
)
No sé si ayuda, pero propuse una edición para su código "feo" que lo hace mucho menos feo. – Superbest
Aquí se proporcionó una solución que utiliza 'switch()' y 'match()' (mucho más tarde en 2014): http://stackoverflow.com/a/27279612/1103558 – noumenal