Un bucle for anidado le permite recorrer elementos en múltiples vectores (o múltiples dimensiones de una matriz) y realizar algunas operaciones.
La estructura básica de un bucle for en R es:
para (i en 1: 4) {
imprimir (i)
}
[1] 1
[1] 2
[1] 3
[1] 4
Y la estructura básica de un bucle for anidado es:
para (i en 1: 4) {
para (j en 1: 2) {
imprimir (i * j)
}
}
[1] 1
[1] 2
[1] 2
[1] 4
[1] 3
[dieciséis
[1] 4
[1] 8
Este tutorial muestra algunos ejemplos de cómo crear bucles for anidados en R.
Ejemplo 1: bucle for anidado en R
El siguiente código muestra cómo usar un bucle for anidado para completar los valores de una matriz de 4 × 4:
#create matrix
empty_mat <- matrix (nrow = 4 , ncol = 4 )
#ver matriz vacía
alfombra_vacia
[, 1] [, 2] [, 3] [, 4]
[1,] NA NA NA NA
[2,] NA NA NA NA
[3,] NA NA NA NA
[4,] NA NA NA NA
#utilice el bucle for anidado para completar los valores de la matriz
para (i en 1: 4) {
para (j en 1: 4) {
alfombra_vacío [i, j] = (i * j)
}
}
#ver matriz
alfombra_vacia
[, 1] [, 2] [, 3] [, 4]
[1,] 1 2 3 4
[2,] 2 4 6 8
[3,] 3 6 9 12
[4,] 4 8 12 16
Ejemplo 2: Bucle for anidado en R
El siguiente código muestra cómo usar un bucle for anidado para cuadrar cada valor en un marco de datos:
#create un marco de datos vacío
df <- data.frame (var1 = c (1, 7, 4),
var2 = c (9, 13, 15))
#ver marco de datos vacío
df
var1 var2
1 1 9
2 7 13
3 4 15
#utilice el bucle for anidado para cuadrar cada valor en el marco de datos
para (i en 1: nrow (df)) {
para (j en 1: ncol (df)) {
gl [i, j] = gl [i, j] ^ 2
}
}
#ver nuevo marco de datos
df
var1 var2
1 1 81
2 49 169
3 16 225
Una nota sobre el bucle
En general, los bucles for anidados funcionan bien en matrices o conjuntos de datos pequeños, pero tienden a ser bastante lentos con datos más grandes.
Para big data, la familia de funciones de aplicación tiende a ser mucho más rápida y el paquete data.table tiene muchas funciones integradas que funcionan de manera eficiente en conjuntos de datos más grandes.
Recursos adicionales
Cómo recorrer los nombres de las columnas en R
Cómo agregar filas a un marco de datos en R
- https://r-project.org
- https://www.python.org/
- https://www.stata.com/