Como prá­c­ti­ca­me­n­te en cualquier otro lenguaje de pro­gra­ma­ción, en R tampoco se puede evitar la ejecución co­n­di­cio­nal de bloques de código concretos. Con la es­tru­c­tu­ra de control if else puedes formular co­n­di­cio­nes y conducir así la ejecución de tu programa.

Opciones de uso de la sentencia if else en R

La de­cla­ra­ción if else, también conocida como ra­mi­fi­ca­ción co­n­di­cio­nal, suele en­ca­r­gar­se de que solo se ejecuten bloques es­pe­cí­fi­cos de se­n­te­n­cias cuando se dé una condición. La dimensión co­n­di­cio­nal de la sentencia if else es fu­n­da­me­n­tal, por lo que es imposible imaginar la mayoría de programas sin ellas. Las co­n­di­cio­nes if else son ne­ce­sa­rias es­pe­cia­l­me­n­te en los al­go­ri­t­mos más complejos.

Usar se­n­te­n­cias if else en tu código fuente es práctico por ejemplo si quieres testear las entradas de usuario con un valor de­te­r­mi­na­do. Pero las es­tru­c­tu­ras if else suelen uti­li­zar­se sobre todo con los bucles for en R: si buscas un valor concreto en una es­tru­c­tu­ra de datos, puedes in­te­rru­m­pir di­re­c­ta­me­n­te el bucle con una sentencia if en cuanto lo haya en­co­n­tra­do.

Consejo

Una buena idea para guardar tus proyectos y programas en un lugar seguro es el alo­ja­mie­n­to web con tráfico ilimitado de IONOS. Gracias a las copias de seguridad au­to­má­ti­cas, evitas la pérdida de tus datos.

Sintaxis de la sentencia if else en R

Las se­n­te­n­cias if else en R pueden in­se­r­tar­se de distintas maneras co­m­bi­na­n­do las palabras clave “if”, “else” y “else if”. Sin embargo, la lógica de base no cambia: la ejecución de esos bloques de código siempre depende de una condición.

La sintaxis también está es­tri­c­ta­me­n­te definida. Tras la palabra clave “if”, siempre viene una condición que se es­pe­ci­fi­ca entre pa­ré­n­te­sis. Dentro de la condición a menudo se usan ope­ra­do­res de co­m­pa­ra­ción lógica o ari­t­mé­ti­ca. A co­n­ti­nua­ción, se introduce un bloque de código entre corchetes que solo se ejecutará cuando se dé la condición es­pe­ci­fi­ca­da. De­pe­n­die­n­do de para qué sirva tu sentencia, puedes incluir ahora la palabra clave “else” para in­tro­du­cir un bloque de código que se ejecutará solo si la condición if no se da. Además, también puedes formular otras co­n­di­cio­nes con la palabra clave “else if”.

Nota

Si los bloques de código que quieres ejecutar constan de una sola línea de código, no hace falta que pongas las se­n­te­n­cias if else entre corchetes. Esto favorece la le­gi­bi­li­dad. En cualquier caso, si todavía estás apre­n­die­n­do a programar es re­co­me­n­da­ble que siempre uses los corchetes para evitar problemas.

Condición if en R

Basta con que uses una única sentencia if si quieres ejecutar una condición de­te­r­mi­na­da en tu código. Aquí te lo mostramos:

a <- 0
b <- 40
if (a == 0) {
    print("Zero division not allowed")
    stop()
}
c <- b / a
R

En el código de arriba, la cifra que contiene la variable b debe dividirse entre la cifra de la variable a. Como ya se sabe que no se puede dividir entre cero, en la condición if se comprueba si el valor guardado en a es un cero. Solo cuando así sea, el programa ejecutará el código entre corchetes en el que se detiene la ejecución.

Sentencia if else en R

Si quieres ejecutar bloques de código que dependan de una condición no dada, puedes utilizar la sentencia if else. Al igual que en el caso anterior, primero hay que formular una condición if. Si esta no se da, el programa saltará igua­l­me­n­te a un bloque de código escrito para este caso, tal y como se ilustra en el siguiente ejemplo de código:

a <- 4
b <- 2
if (b < a) {
    print("a is greater than b")
}
else {
    print("a and b are equal or b is greater than a")
}
R

Nue­va­me­n­te se crean dos variables (a y b) que contienen números enteros. En la condición if se co­m­pro­ba­rá si b es menor que a. En caso afi­r­ma­ti­vo, se ejecutará el bloque de la sentencia que hay entre corchetes. En caso negativo, el programa pasará di­re­c­ta­me­n­te al bloque de sentencia que hay tras la palabra clave “else” y ejecutará el código que contiene esa línea.

Sentencia if else en R

En algunos casos, querrás comprobar no una, sino varias co­n­di­cio­nes. Para ello, puedes hacer uso de la palabra clave “else if”. Si te manejas bien con las se­n­te­n­cias if else de Python, quizá conozcas la sentencia else if de R por la palabra clave “elif”.

a <- 4
b <- 2
if (b < a) {
    print("a is greater than b")
}
else if (b > a) {
    print("b is greater than a")
}
R

No hay muchas di­fe­re­n­cias entre este ejemplo de código y los an­te­rio­res. Si­m­ple­me­n­te se sustituye la sentencia else por else if. Al igual que en la sentencia if, tras else if, has de indicar una condición entre pa­ré­n­te­sis.

Ten en cuenta que las co­n­di­cio­nes que se es­pe­ci­fi­can con “else if” son mu­tua­me­n­te ex­clu­ye­n­tes. Cuando la primera condición sea verdadera, como en el caso de arriba, el código que introduce “else if” no se ejecutará. Asimismo, la sentencia else if ahorra potencia de cálculo en co­m­pa­ra­ción con el uso de muchas se­n­te­n­cias if sueltas.

Ir al menú principal