Ciclo For in R con esempi di lista e matrice
Un ciclo for è molto utile quando dobbiamo scorrere un elenco di elementi o un intervallo di numeri. Il loop può essere utilizzato per scorrere un elenco, un frame di dati, un vettore, una matrice o qualsiasi altro oggetto. Le parentesi graffe e la parentesi quadra sono obbligatorie.
In questo tutorial impareremo,
Per la sintassi del loop ed esempi
For (i in vector) { Exp }
Qui,
R eseguirà il loop su tutte le variabili in vector ed eseguirà il calcolo scritto all'interno di exp.

Vediamo alcuni esempi.
Ciclo For in R Esempio 1: Iteriamo su tutti gli elementi di un vettore e stampiamo il valore corrente.
# Create fruit vector fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana') # Create the for statement for ( i in fruit){ print(i) }
Produzione:
## [1] "Apple" ## [1] "Orange" ## [1] "Passion fruit" ## [1] "Banana"
Ciclo For in R Esempio 2: crea una funzione non lineare utilizzando il polinomio di x compreso tra 1 e 4 e la memorizziamo in 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)
Produzione:
## [1] 1 4 9 16
Il ciclo for è molto utile per le attività di machine learning. Dopo aver addestrato un modello, è necessario regolarizzarlo per evitare un adattamento eccessivo. La regolarizzazione è un compito molto noioso perché dobbiamo trovare il valore che minimizzi la funzione di perdita. Per aiutarci a rilevare tali valori, possiamo utilizzare un ciclo for per scorrere un intervallo di valori e definire il miglior candidato.
Per Eseguire il loop su un elenco
Il ciclo su un elenco è altrettanto semplice e conveniente quanto il ciclo su un vettore. Vediamo un esempio
# 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) }
Produzione:
## [1] "Apple" "Orange" "Passion fruit" "Banana" ## [1] 10 12 15 ## [1] FALSE
For Loop su una matrice
Una matrice ha 2 dimensioni, righe e colonne. Per iterare su una matrice, dobbiamo definire due cicli for, ovvero uno per le righe e un altro per la colonna.
# 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]))
Produzione:
## [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"