Estructuras de control

Kenneth Cabrera
18 septiembre, 2019

Estructuras de contol en R

  • if, else: Condicionales.
  • for: Estructura de repetición con un número fijo de repeticiones.
  • while: Estructura de repetición que se realiza mientras las condición sea verdadera.
  • repeat: Estructura de repetición “infinita”.
  • break: Rompe la ejecución de un ciclo repetición.
  • next: Se salta un ciclo de repetición o interacción
  • return: Sale de una función.

Estructura condicional I

if (<condición>) {
   ## instrucciones
} else {
   ## otras instrucciones
}

if (<condición>) {
   ## instrucciones
} else if (<condición>) {
   ## otras instrucciones
} else {
   ## otras instrucciones alternativas
}

Estructura condicional II

Estructura válida:

if (x > 3) {
     y <- 10
} else {
     y <- 0
}

También es estructura válida:

y <- if (x > 3) {
     10
} else {
     0
}

Eficiencia de la forma vectorizada

n <- 100000
# Primera forma
vect <- numeric(0)
system.time(for(i in 1:n) vect <- c(vect, i*2))
# Segunda forma
vect <- numeric(n)
system.time(for(i in 1:n) vect[i] <- i*2)
# Tercera forma
system.time(vect <- seq(0,n,2))
# Cuarta forma
system.time(vect <- (1:n)* 2)

Estructura de repetición VI

x0 <- 1; tol <- 1e-6; i <- 0
repeat {
     x1 <- 1 / (x0+1)
     i <- i + 1
     cat("inter= ",i,"valor= ",x1, "\n")
     if (abs(x1 - x0) < tol) {
        break
     } else {
        x0 <- x1
     }
}

La única forma de salir del repeat es mediante el break.

Mejor sería limitar el número de iteraciones, para evitar un posible ciclo infinito.

Estructura de repetición VII

for (i in 1:100) {
    if ((i + 1) %% 7 != 0){
      next
    }
    print (i)
}

El return se utiliza en el contexto de funciones