Introducción a la declaración de cambio en R

Consideremos una situación en la que hay múltiples opciones en forma de expresiones y tenemos que controlar nuestra salida de tal manera que compare el valor de la expresión y los valores presentes en la lista y, en consecuencia, pase la salida. Para esto, también podemos usar las declaraciones If Else, pero existen algunas restricciones, como las declaraciones If Else no son adecuadas cuando hay ramificaciones de múltiples vías (opciones múltiples). Entonces, aquí podemos usar sentencias Switch en r que tienen múltiples ventajas, como

  • Una instrucción switch puede probar expresiones basadas en un objeto String, un valor List o un entero único, básicamente, en términos más simples, podemos decir que las instrucciones switch son mejores para valores de datos fijos.
  • Las declaraciones de cambio son mejores para la ramificación multidireccional.
  • La velocidad de procesamiento del código es rápida cuando usamos instrucciones de cambio (esto es visible cuando hay un número significativo de casos); en general, las declaraciones if-else tomaron tiempo cuando hay una gran cantidad de casos.
  • Las declaraciones de cambio son menos vulnerables al error, ya que son mucho más limpias cuando tenemos que combinar casos.

Definición

Una instrucción switch comparará el valor de expresión y los valores presentes en la lista y nos proporcionará la mejor salida que cumpla con todos los requisitos. Ahora veremos alguna ilustración donde podemos usar la instrucción switch.

Sintaxis:

La sintaxis básica en R para las declaraciones de conmutador se ve así:

switch(expression, Value 1, Value 2, Value 3…. Value n)

Aquí, el código comparará el valor de expresión con los valores de la lista y la mejor coincidencia regresará como una salida que cumple con todas las condiciones de la declaración del problema.

Reglas de declaración de cambio

Las reglas que son aplicables en la Declaración de cambio son:

1. No hay límite para las declaraciones de casos dentro de un interruptor, ya que puede formar n números de declaraciones de casos, la única limitación es que a cada caso le sigue el valor a comparar o dos puntos, donde sea que se encuentre la cadena de caracteres.

2. Si hay más de una coincidencia dentro de una declaración de cambio, la primera declaración de caso coincidente se devuelve como una salida.

Ejemplo 1

Código:

x <- switch("color", "color" = "red", "shape" = "square", "color" = "blue")
x

Salida:

Código:

x <- switch("color", "color" = "blue", "shape" = "square", "color" = "red")
x

Salida:

3. Si el valor que tenemos que evaluar en nuestro código es un número y el valor numérico está fuera de rango (los valores son mayores que el número de elementos en la lista o menores que 1). Entonces el resultado devuelto a nosotros es "NULL".

Ejemplo # 2

Código:

x <- switch(4, "Ball", "Bat", "Wickets")
x

Salida:

Código:

x <- switch(0, "Ball", "Bat", "Wickets")
x

Salida:

4. Si tenemos que evaluar una cadena de caracteres, las cadenas de caracteres deben coincidir exactamente con los nombres de los elementos.

Ejemplo # 3

Código:

x <- switch("color", "color" = "red", "shape" = "square")
x

Salida:

Código:

x <- switch("coler", "color" = "red", "shape" = "square")
x

Salida:

5. Obtendremos un error como resultado solo cuando haya más de un enunciado de caso con una ortografía incorrecta o si la expresión no está en la lista o falta el valor correspondiente del enunciado de caso.

Diagrama de flujo de la declaración de cambio en R

  • Si Expression = Case 1, se ejecuta la DECLARACIÓN 1.
  • Si Expression = Case 2, se ejecuta la DECLARACIÓN 2.
  • Si Expression = Case 3, se ejecuta la DECLARACIÓN 3.
  • Si el caso 1, el caso 2 y el caso 3 fallan, se ejecuta la instrucción predeterminada.

Casos de uso de declaración de cambio

Algunos casos en los que podemos usar declaraciones de cambio.

Tipo 1: si la expresión es número

Código:

switch(2, "Ball", "Bat", "Wickets")

Salida:

Código:

switch(3, "Ball", "Bat", "Wickets")

Salida:

En el ejemplo anterior, tenemos una lista que consta de tres elementos (Ball, Bat y Wickets), la función de instrucción de cambio devolverá el elemento correspondiente al valor numérico que ingresamos como expresión.

Aquí tenemos que seguir de cerca las reglas al usar una instrucción Switch, como el error muy básico y común es:

“Si el valor evaluado es un número y el valor numérico está fuera de rango (los valores son mayores que el número de elementos en la lista o menores que 1). El resultado que se nos devuelve es "NULL".

Código:

x <- switch(4, "Ball", "Bat", "Wickets")
x

Salida:

Tipo 2: si la expresión es una cadena

Código:

switch("Wickets", "Ball" = "Red", "Bat" = "Rectangle", "Wickets" = "Out")

Salida:

El diagrama de flujo para el ejemplo se ve así:

Tipo 3: Mix n Match

Ejemplo 1:

x= 1
y = 2
z = switch(x+y, "Hello Abhinav", "Hello Mayank", "Hello Naman", "Hello Hardik")

Aquí asignamos algunos valores a x e y luego agregamos la expresión en la declaración del interruptor como una ecuación.

Entonces x + y = 1 + 2 = 3.

Lo que significa que el tercer valor en la lista vendrá como una salida. En nuestro ejemplo, el valor 3 es "Hola Naman".

Código:

Y el código para el ejemplo anterior se ve así:

x= 1
y = 2
z = switch(x+y, "Hello Abhinav", "Hello Mayank", "Hello Naman", "Hello Hardik")
z

Salida:

Ejemplo # 2:

Where x= 1 and y= 7
a = switch(paste(x, y, sep=""), "7"="Hello Abhinav", "12"="Hello Mayank", "17"="Hello Naman", "21"="Hello Hardik")

Cuando ejecutamos esto en R obtendremos.

Código:

x= 1
y= 7
a = switch(paste(x, y, sep=""), "7"="Hello Abhinav", "12"="Hello Mayank", "17"="Hello Naman", "21"="Hello Hardik")
a

Salida:

Conclusión

  • Las declaraciones de cambio son más fáciles de leer.
  • Las declaraciones de cambio son más eficientes si lo comparamos con la declaración If-Else.
  • Las declaraciones de cambio son fáciles de mantener y escribir.
  • Con la ayuda de la Declaración de cambio, podemos hacer una tabla de salto.
  • Las declaraciones de cambio nos ayudan a hacer que el código grande sea muy útil, es muy fácil rastrear un error en el código, si lo hay.

Aunque existen algunas limitaciones, también las declaraciones Switch no funcionan con flotantes y tampoco funcionan con rangos (a menos que se mencione explícitamente).

Artículos recomendados

Esta es una guía para la declaración de cambio en R. Aquí discutimos las reglas, el diagrama de flujo y los diferentes casos de uso de declaraciones de cambio en R con ejemplos. También puede consultar los siguientes artículos para obtener más información:

  1. Declaración de cambio en C
  2. Declaración de cambio en C ++
  3. Declaración de cambio en JavaScript
  4. Declaración de cambio en Matlab
  5. Cambiar la declaración en C #

Categoría: