Saltar al contenido principal
eLearner.app
Módulo 2 · Lección 2 de 24/10 en el curso~12 min
Lecciones del módulo (2/2)

Condicionales y Bucles

Para implementar algoritmos y procedimientos complejos en R, es necesario poder controlar qué instrucciones ejecutar y cuántas veces repetirlas.

Instrucciones Condicionales

En R, la estructura condicional fundamental se basa en if y else. La sintaxis es completamente similar a la de lenguajes como JavaScript o C:

Code
score <- 85

if (score >= 60) {
  print("Superato!")
} else {
  print("Non superato.")
}

Las llaves {} delimitan los bloques de código a ejecutar según el resultado de la expresión booleana entre paréntesis.

El Bucle for

El bucle for en R se utiliza para iterar sobre elementos que pertenecen a una secuencia (como un vector o una lista).

Code
# Imprime los números del 1 al 3
for (i in 1:3) {
  print(i)
}

En R, la sintaxis 1:3 es una abreviatura para crear el vector c(1, 2, 3).

También podemos recorrer directamente los elementos de un vector existente:

Code
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

La Función ifelse

En R, la función ifelse() es una versión vectorizada del constructor if-else. Permite aplicar una condición a un vector completo en una sola operación, devolviendo un vector de resultados.

Code
scores <- c(55, 80, 45, 90)
# Si score >= 60 asigna "Pass", de lo contrario "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"

El Bucle while

El bucle while se utiliza para repetir un bloque de código mientras una determinada condición permanezca verdadera (TRUE). Es fundamental asegurarse de que la condición se vuelva falsa en algún momento para evitar bucles infinitos.

Code
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

Pruébalo tú

Ejercicio#r.m2.l2.e1
Intentos: 0Cargando...

Escribe una estructura condicional if-else que verifique si la variable score es mayor o igual a 60. Si lo es, establece status en 'Pass', de lo contrario establécela en 'Fail'.

Cargando editor...
Mostrar pista

Verifica score >= 60 y asigna status <- 'Pass' o status <- 'Fail'

Solución disponible después de 3 intentos

Ejercicio#r.m2.l2.e2
Intentos: 0Cargando...

Escribe un bucle for que iteré sobre la secuencia 1:5 e imprima cada valor usando la función print().

Cargando editor...
Mostrar pista

Usa la sintaxis: for (i in 1:5) { print(i) }

Solución disponible después de 3 intentos

Ejercicio#r.m2.l2.e3
Intentos: 0Cargando...

Dado el vector v, escribe un bucle for que iteré sobre cada elemento e imprima el doble (val * 2) usando print().

Cargando editor...
Mostrar pista

Recorre los elementos de v: for (val in v) { print(val * 2) }

Solución disponible después de 3 intentos

Ejercicio#r.m2.l2.e4
Intentos: 0Cargando...

Dado el vector scores, usa la función ifelse() para verificar qué elementos son mayores o iguales a 60. Guarda el resultado (que contendrá 'Pass' o 'Fail' para cada elemento) en la variable results.

Cargando editor...
Mostrar pista

Usa la función: results <- ifelse(scores >= 60, 'Pass', 'Fail')

Solución disponible después de 3 intentos

Ejercicio#r.m2.l2.e5
Intentos: 0Cargando...

Usa un bucle while para duplicar el valor de x hasta que supere 50. Incrementa también la variable counter en cada iteración.

Cargando editor...
Mostrar pista

Usa un bucle while (x <= 50) y actualiza tanto x como counter dentro de las llaves.

Solución disponible después de 3 intentos