Sección 4 Control de flujo
4.1 Construcción condicional if
Es de la forma if (expr 1) expr 2 else expr 3 donde expr 1 debe producir
un valor lógico. Si expr 1 es verdadero (TRUE), se ejecutara expr 2.
Si expr 1 es falso (FALSE), y se ha escrito la opcion else, que es
opcional, se ejecutara expr 3.
if (3 > 2)
print("yes")## [1] "yes"
if (2 > 3)
print("yes")
if (2 > 3) {
print("yes")
} else{
print("no")
}## [1] "no"
Ejemplo con dos condiciones:
Supongamos que x <- 75 es la nota numérica de examen de un estudiante, queremos
asignar nota “A”, “B” o “C”
if (x < 60)
nota = "C"
if (x >= 60 & x < 80)
nota = "B"
if (x >= 80)
nota = "A"ifelse es la versión vectorizada de if, eto sifnigica que para cada elemento
del vector lógico, ejecutará una u otra función dependiendo del valor.
Ejemplo:
nota.num <-
c(39, 51, 60, 65, 72, 78, 79, 83, 85, 85, 87, 89, 91, 95, 96, 97, 100, 100)
prueba <- ifelse(nota.num >= 60, "aprobado", "desaprobado")
prueba## [1] "desaprobado" "desaprobado" "aprobado" "aprobado" "aprobado"
## [6] "aprobado" "aprobado" "aprobado" "aprobado" "aprobado"
## [11] "aprobado" "aprobado" "aprobado" "aprobado" "aprobado"
## [16] "aprobado" "aprobado" "aprobado"
4.2 Construcción repetitiva for
Es de la forma for (nombre in obj) {expr} donde nombre es la variable
de control de iteración, esto sifnifica que asumirá cada valor del objeto obj
es un vector (puede ser una secuancia m:n), y expr es una expresión, a
menudo agrupada, en cuyas sub-expresiones puede aparecer la variable de
control, nombre. expr se evalua repetidamente conforme nombre recorre
los valores del objeto obj.
for (i in 1:10) print(i)## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10
x = numeric(10)
for (i in 1:10) x[i] = i^2
y = 0
for (i in 1:10) y = y + i4.3 Construccion repetitiva while
Es de la forma while (expr1) expr2, indicando que se quiere repetir la
acción expr2 mientras que ocurra expr1.
i = 0
while (i < 15) {
print(i)
i = i + 1
}## [1] 0
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10
## [1] 11
## [1] 12
## [1] 13
## [1] 14
Ejercitación
Construcción condicional
Escriba el comando neccesario para poner notas “A”, “B” o “C” dependiendo del valor de
final_score: “C” si final_score <60, “B” si 60 =< final_score < 80, “A” si 80 =< final_score =< 100.Construcción repetitiva
Usar un ciclo
forpara contar la cantidad de números mayores a 10 en el vectorx <- c(2,5,3,9,8,11,6,8,12,3,57,56), ¿Se podría hacer sin la funciónfor?