Saltar al contenido

For Loop in R con ejemplos de lista y matriz

Los bucles son muy valiosos cuando necesitamos repetir una lista de elementos o un rango de números. Se puede utilizar un bucle para repetir una lista, un marco de datos, un vector, una matriz o cualquier otra cosa. Las llaves y el corchete son obligatorios.

En este tutorial, aprenderemos,

Para ejemplos y sintaxis de bucle


For (i in vector) {
    Exp	
}

Seo

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

Veremos algunos ejemplos.

Ejemplo 1: Imitamos todos los aspectos de un vector e imprimimos el valor actual.


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

Producción:


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

Ejemplo 2: se crea una función no lineal usando polyimals x entre 1 y 4 y la almacenamos en una lista


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

Producción:

## [1]   1  4 9 16		

El ciclo es muy valioso para las tareas de aprendizaje automático. Después de entrenar un modelo, necesitamos regular el modelo para evitar un ajuste excesivo. Regular 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 usar bucles para repetir un rango de valores y definir el mejor candidato.

Para bucle sobre la lista

Inclinarse sobre una lista es tan fácil y conveniente como inclinarse sobre un vector. Veamos un ejemplo


# Create a list with three vectors
fruit <- 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 matriz

Tiene una matriz bidimensional, filas y columnas. Para repetir una matriz, necesitamos definir dos para un ciclo, a saber, uno para las filas y otro para la columna.


# Create a matrix
mat <- matrix(data = seq(10, 20, by=1), nrow = 6, ncol =2)
# Create the loop with r and c to iterate over the matrix
for (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" 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *