Um loop for é muito valioso quando precisamos iterar sobre uma lista de elementos ou um intervalo de números. O loop pode ser usado para iterar sobre uma lista, quadro de dados, vetor, matriz ou qualquer outro objeto. As chaves e colchetes são obrigatórios.
Neste tutorial, aprenderemos,
- Para sintaxe de loop e exemplos
- For Loop sobre uma lista
- For Loop sobre uma matriz
Para sintaxe de loop e exemplos
For (i in vector) {Exp}
Aqui,
R fará um loop sobre todas as variáveis no vetor e fará o cálculo escrito dentro do exp.
Vamos ver alguns exemplos.
Exemplo 1 : iteramos sobre todos os elementos de um vetor e imprimimos o valor atual.
# Create fruit vectorfruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')# Create the for statementfor ( i in fruit){print(i)}
Resultado:
## [1] "Apple"## [1] "Orange"## [1] "Passion fruit"## [1] "Banana"
Exemplo 2 : cria uma função não linear usando o polinômio de x entre 1 e 4 e o armazenamos em uma 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)
Resultado:
## [1] 1 4 9 16
O loop for é muito valioso para tarefas de aprendizado de máquina. Depois de treinar um modelo, precisamos regularizá-lo para evitar o sobreajuste. A regularização é uma tarefa muito tediosa porque precisamos encontrar o valor que minimiza a função de perda. Para nos ajudar a detectar esses valores, podemos usar um loop for para iterar em uma faixa 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 vectorsfruit <- list(Basket = c('Apple', 'Orange', 'Passion fruit', 'Banana'),Money = c(10, 12, 15), purchase = FALSE)for (p in fruit){print(p)}
Resultado:
## [1] "Apple" "Orange" "Passion fruit" "Banana"## [1] 10 12 15## [1] FALSE
For Loop sobre uma matriz
Uma matriz tem 2 dimensões, linhas e colunas. Para iterar sobre uma matriz, temos que definir dois laços for, a saber, um para as linhas e outro para a coluna.
# 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]))
Resultado:
## [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"