Las expresiones condicionales son aquellas expresiones de un lenguaje de programación que nos permiten dirigir nuestro código hacia un sitio u otro en función de si una o varias condiciones se cumplen o no. Por lo tanto son sumamente útiles porque nos permiten adaptar nuestros programas a elementos que podemos anticipar que no vayan a ser constantes. Su aparición es constante por lo tanto en el código de cualquier programa, por supuesto combinada con bucles de varios tipos.
El núcleo principal de los condicionales es if, que inicia la expresión condicional. A continuación, introducimos la condición a evaluar si se cumple o no, y entre corchetes curvos las operaciones que se deben ejecutar si se cumple la condición. Opcionalmente, podemos especificar mediante la expresión else que se ejecuten otras operaciones si la condición evaluada no se cumple.
Recomendamos escribir el código de la manera que aparece en el siguiente código para evitar problemas y no poner los corchetes en otras líneas que no sean estas. Aunque hay otras maneras más sencillas, a nivel de visualización, especialmente al aprender R, este método es más ventajoso.
if(condicion){
#hacer algo
} else {
#hacer lo otro
}
Vamos a ver nuestro primer ejemplo. Con un objeto x de valor 5 vamos a evaluar si se cumple la condición x>5:
x<-5
if (x>5){
print("Número grande")
} else {
print("Número pequeño")
}
## [1] "Número pequeño"
Hasta ahora nuestro código es dicotómico, solo se da un caso o su alternativa. Pero es muy posible que necesitemos más de una alternativa porque tenemos más casos. En este caso tendremos que modificar nuestro código para anidar una nueva expresión condicional que reevalúe las alternativas restantes. En la siguiente expresión condicional vamos a tener tres alternativas: Si mi número es superior a 10, lo considero un número “grande” Entre el 5 el 9, “intermedio”. Del 5 hacia abajo, un número “pequeño”.
Por lo tanto, la acción a la que nos conduce la expresión else
, es otra nueva evaluación con if
: vamos a evaluar de nuevo otra condición, dando la opción de ejecutar una operación u otra. EN el siguiente ejemplo, basado en el el caso que estamos comentando, hacemos lo siguiente: evaluamos si el número es menor que 10. Si lo es, escribimos una expresión en pantalla. Pero si no lo es, reevaluamos de nuevo, esta vez viendo si el número es mayor, en cuyo caso escribiremos que es un número intermedio, y si no, nos iremos al segundo y último else
.
Esa segunda evaluación está dentro de los corchetes del primer else
. Rstudio va a ir de manera sistemática indentando o moviendo el inicio de mi siguiente línea de código a la derecha. De esta manera podemos visualmente localizar mejor qué partes del código están subordinadas, o dentro de corchetes o paréntesis.
x<-8
if (x>10){
print("Número grande")
} else {
if (x>5){
print("Número intermedio")
} else {
print ("Número pequeño")
}
}
## [1] "Número intermedio"