For Loop in R con ejemplos de lista y matriz

Tabla de contenido:

Anonim

Un bucle for es muy valioso cuando necesitamos iterar sobre una lista de elementos o un rango de números. Loop se puede utilizar para iterar sobre una lista, marco de datos, vector, matriz o cualquier otro objeto. Las llaves y el corchete son obligatorios.

En este tutorial, aprenderemos,

  • Para ejemplos y sintaxis de bucle
  • For Bucle sobre una lista
  • Para bucle sobre una matriz

Para ejemplos y sintaxis de bucle

For (i in vector) {Exp}

Aquí,

R recorrerá todas las variables en el vector y hará el cálculo escrito dentro del exp.

Veamos algunos ejemplos.

Ejemplo 1 : iteramos sobre todos los elementos de un vector e imprimimos el valor actual.

# Create fruit vectorfruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')# Create the for statementfor ( i in fruit){print(i)}

Producción:

## [1] "Apple"## [1] "Orange"## [1] "Passion fruit"## [1] "Banana"

Ejemplo 2 : crea una función no lineal usando el polinomio de x entre 1 y 4 y lo almacenamos en una lista

# Create an empty listlist <- c()# Create a for statement to populate the listfor (i in seq(1, 4, by=1)) {list[[i]] <- i*i}print(list)

Producción:

## [1] 1 4 9 16 

El bucle for es muy valioso para las tareas de aprendizaje automático. Después de haber entrenado un modelo, debemos regularizarlo para evitar un ajuste excesivo. La regularización es una tarea muy tediosa porque necesitamos encontrar el valor que minimice la función de pérdida. Para ayudarnos a detectar esos valores, podemos hacer uso de un bucle for para iterar sobre un rango de valores y definir el mejor candidato.

For Bucle sobre una lista

Hacer un bucle sobre una lista es tan fácil y conveniente como recorrer un vector. Veamos un ejemplo

# Create a list with three vectorsfruit <- list(Basket = c('Apple', 'Orange', 'Passion fruit', 'Banana'),Money = c(10, 12, 15), purchase = FALSE)for (p in fruit){print(p)}

Producción:

## [1] "Apple" "Orange" "Passion fruit" "Banana"## [1] 10 12 15## [1] FALSE

Para bucle sobre una matriz

Una matriz tiene dos dimensiones, filas y columnas. Para iterar sobre una matriz, tenemos que definir dos bucles for, a saber, uno para las filas y otro para la columna.

# Create a matrixmat <- matrix(data = seq(10, 20, by=1), nrow = 6, ncol =2)# Create the loop with r and c to iterate over the matrixfor (r in 1:nrow(mat))for (c in 1:ncol(mat))print(paste("Row", r, "and column",c, "have values of", mat[r,c]))

Producción:

## [1] "Row 1 and column 1 have values of 10"## [1] "Row 1 and column 2 have values of 16"## [1] "Row 2 and column 1 have values of 11"## [1] "Row 2 and column 2 have values of 17"## [1] "Row 3 and column 1 have values of 12"## [1] "Row 3 and column 2 have values of 18"## [1] "Row 4 and column 1 have values of 13"## [1] "Row 4 and column 2 have values of 19"## [1] "Row 5 and column 1 have values of 14"## [1] "Row 5 and column 2 have values of 20"## [1] "Row 6 and column 1 have values of 15"## [1] "Row 6 and column 2 have values of 10"