miércoles, 12 de agosto de 2009

R: Sentencia de Control If

En este apartado, nos adentraremos en la sentencia de control condicional if e if-else, que nos serán de gran utilidad a la hora de crear y diseñar nuestras funciones.

En las estructuras condicionales, se evalúa una condición y en función del resultado de la misma se realiza una opción u otra. Las estructuras condicionales pueden ser: simples, dobles o múltiples.

La sintaxis de la sentencia de control if, es la siguiente:


if(condición)
{
expresión 1
expresión 2
···
expresión N
}

La estructura anterior es muy limitada cuando se necesite elegir entre dos o más opciones, es por ello que disponemos de la sentencia de control if-else, cuya sintaxis es la siguiente:

if(condición)
{
expresión 1
expresión 2
···
expresión N
}
else
{
expresión 1
expresión 2
···
expresión N
}

Para la condición, podemos emplear los siguientes parámetros binarios:
  • Menor que: Cuyo símbolo es: '<.'
  • Mayor que: Cuyo símbolo es: '>'
  • Igual que: Cuyo símbolo es: '='
  • Menor o igual que: Cuyo símbolo es: '<='
  • Mayor o igual que: Cuyo símbolo es: '>='
  • Distinto que: Cuyo símbolo es: '!='

Por ejemplo, creamos una función que determine si un número cualquiera que seleccionemos, es mayor o igual que 5:

> f1 <- function(x){
+ if(x >= 5){
+ print("x es mayor que 5")}
+ else{
+ print("x es menor que 5")}
+ }

Probamos la función:

> f1(4)
[1] "x es menor que 5"
> f1(8)
[1] "x es mayor que 5"

Podemos comprobar, que la función da cómo salida lo que queríamos determinar.

Para utilizar más de una condición, se puede utilizar los operadores lógicos que se muestran a continuación:
  • Operador lógico AND: Cuyo símbolo es '&&'
  • Operador lógico OR: Cuyo símbolo es '||'

Por ejemplo, creamos una función que determine si un número cualquiera que seleccionemos, es igual que 5 o mayor que 8:

> f2 <- function(x){
+ if(x == 5 || x > 8){
+ print("x cumple con las condiciones determinadas")
+ }else{
+ print("x no cumple las condiciones determinadas")}
+ }

Comprobamos la función diseñada:

> f2(4)
[1] "x no cumple las condiciones determinadas"
> f2(9)
[1] "x cumple con las condiciones determinadas"
> f2(5)
[1] "x cumple con las condiciones determinadas"

La función funciona tal y cómo esperábamos.

R dispone en su ayuda un ilustrativo manual para que podamos aundar más la sentencia de control condicional:

> ?"if"

En conclusión, las sentencias de control condicionales mediante el comando if o if-else, son de gran utilidad para complemento del diseño de nuestras funciones, y lo que es más importante, R dispone de forma fácil su comprensión y empleo.

0 comentarios: