Une boucle for est très utile lorsque nous devons parcourir une liste d'éléments ou une plage de nombres. La boucle peut être utilisée pour parcourir une liste, un bloc de données, un vecteur, une matrice ou tout autre objet. Les accolades et l'équerre sont obligatoires.
Dans ce tutoriel, nous allons apprendre,
- Syntaxe et exemples de boucle For
- Pour Boucle sur une liste
- Boucle For sur une matrice
Syntaxe et exemples de boucle For
For (i in vector) {Exp}
Ici,
R bouclera sur toutes les variables du vecteur et effectuera le calcul écrit à l'intérieur de exp.
Voyons quelques exemples.
Exemple 1 : Nous parcourons tous les éléments d'un vecteur et imprimons la valeur courante.
# Create fruit vectorfruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')# Create the for statementfor ( i in fruit){print(i)}
Production:
## [1] "Apple"## [1] "Orange"## [1] "Passion fruit"## [1] "Banana"
Exemple 2 : crée une fonction non linéaire en utilisant le polynôme de x entre 1 et 4 et on le stocke dans une liste
# 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)
Production:
## [1] 1 4 9 16
La boucle for est très utile pour les tâches d'apprentissage automatique. Après avoir formé un modèle, nous devons régulariser le modèle pour éviter le sur-ajustement. La régularisation est une tâche très fastidieuse car nous devons trouver la valeur qui minimise la fonction de perte. Pour nous aider à détecter ces valeurs, nous pouvons utiliser une boucle for pour itérer sur une plage de valeurs et définir le meilleur candidat.
Pour Boucle sur une liste
Faire une boucle sur une liste est tout aussi simple et pratique que faire une boucle sur un vecteur. Voyons un exemple
# 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)}
Production:
## [1] "Apple" "Orange" "Passion fruit" "Banana"## [1] 10 12 15## [1] FALSE
Boucle For sur une matrice
Une matrice a 2 dimensions, des lignes et des colonnes. Pour itérer sur une matrice, nous devons définir deux boucles for, à savoir une pour les lignes et une autre pour la colonne.
# 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]))
Production:
## [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"