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.

Para Loop em R
Para Loop em R

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"