For Loop em R com exemplos para lista e matriz
Um loop for é muito valioso quando precisamos iterar uma lista de elementos ou um intervalo de números. Loop pode ser usado para iterar sobre uma lista, quadro de dados, vetor, matriz ou qualquer outro objeto. Os colchetes e colchetes são obrigatórios.
Neste tutorial, vamos aprender,
Sintaxe e exemplos de loop For
For (i in vector) { Exp }
Aqui,
R fará um loop sobre todas as variáveis no vetor e fará o cálculo escrito dentro de exp.

Vejamos alguns exemplos.
For Loop em R Exemplo 1: Iteramos sobre todos os elementos de um vetor e imprimimos o valor atual.
# Create fruit vector fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana') # Create the for statement for ( i in fruit){ print(i) }
Saída:
## [1] "Apple" ## [1] "Orange" ## [1] "Passion fruit" ## [1] "Banana"
For Loop em R Exemplo 2: cria uma função não linear usando o polinômio de x entre 1 e 4 e armazenamos em uma 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)
Saída:
## [1] 1 4 9 16
O loop for é muito valioso para tarefas de aprendizado de máquina. Depois de treinarmos um modelo, precisamos regularizá-lo para evitar ajuste excessivo. A regularização é uma tarefa muito tediosa porque precisamos encontrar o valor que minimize a função de perda. Para nos ajudar a detectar esses valores, podemos usar um loop for para iterar um intervalo de valores e definir o melhor candidato.
For Loop sobre uma lista
Fazer um loop em uma lista é tão fácil e conveniente quanto fazer um loop em um vetor. Vamos ver um exemplo
# 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) }
Saída:
## [1] "Apple" "Orange" "Passion fruit" "Banana" ## [1] 10 12 15 ## [1] FALSE
For Loop sobre uma matriz
Uma matriz possui duas dimensões, linhas e colunas. Para iterar sobre uma matriz, temos que definir dois loops for, ou seja, um para as linhas e outro para a coluna.
# 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]))
Saída:
## [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"