Imbriqué pour les boucles dans R

Jinku Hu 30 janvier 2023
  1. Boucle for en langage R
  2. Utilisez la boucle for imbriquée pour parcourir les éléments de la matrice dans R
Imbriqué pour les boucles dans R

Cet article présentera les boucles for imbriquées dans R.

Boucle for en langage R

La boucle for est disponible en langage R avec des heuristiques similaires à celles de la plupart des langages de programmation. Il répète plusieurs fois le bloc de code donné. La syntaxe de la boucle for est la suivante.

for (item in set) {}

item est un objet qui stocke l’élément itéré du set. La boucle for ne renvoie pas de sortie, nous devons donc appeler la fonction print pour afficher la valeur word à chaque itération.

vec1 <- c("ace", "spades", "king", "spades", "queen", "spades", "jack",
           "spades", "ten", "spades")

for (word in vec1) {
  print(word)
}

Production:

[1] "ace"
[1] "spades"
[1] "king"
[1] "spades"
[1] "queen"
[1] "spades"
[1] "jack"
[1] "spades"
[1] "ten"
[1] "spades"

On peut aussi implémenter la boucle for, où l’index est exposé en tant que variable. Dans ce cas, la fonction length est utilisée pour calculer la taille du vecteur vec1 et itérer du premier élément à la fin. Notez que la notation 1: est importante et spécifie le début de la plage. L’exemple de code suivant crée un vecteur de chaîne copié dans un autre vecteur de la même taille à l’aide de la boucle for.

vec1 <- c("ace", "spades", "king", "spades", "queen", "spades", "jack",
           "spades", "ten", "spades")

vec2 <- vector(length = length(vec1))

for (i in 1:length(vec1)) {
  vec2[i] <- vec1[i]
}
vec2

Production:

[1] "ace"    "spades" "king"   "spades" "queen"  "spades" "jack"   "spades" "ten"   
[10] "spades"

Utilisez la boucle for imbriquée pour parcourir les éléments de la matrice dans R

Les boucles imbriquées peuvent être implémentées en utilisant la structure de boucle for. Cela peut être utilisé pour itérer sur les éléments de la matrice et les initialiser avec des valeurs aléatoires. Notez que la notation générale est la même que dans l’exemple précédent, sauf que la fin de la plage est calculée avec les fonctions nrow et ncol. nrow et ncol renvoient respectivement le nombre de lignes ou de colonnes du tableau.

mat1 <- matrix(0, nrow = 5, ncol = 5)
for (i in 1:nrow(mat1)) {
  for (j in 1:ncol(mat1)) {
    mat1[i, j] <- sample(1:100, 1, replace=TRUE)
  }
}
mat1

Production:

[,1] [,2] [,3] [,4] [,5]
[1,]   13   14   13   67   98
[2,]   28   50   23   55    9
[3,]    3   65   99   17   93
[4,]   18    6   20   50   46
[5,]   51   76   33   26    3

Bien que la structure de boucle imbriquée fonctionne correctement dans l’exemple de code précédent. L’initialisation de la matrice est mieux effectuée en utilisant la fonction sample enchaînée directement comme premier argument de la fonction matrix, comme indiqué dans l’extrait suivant.

mat2 <- matrix(sample(1:100, 25, replace = TRUE), ncol = 5)
mat2

Production:

[,1] [,2] [,3] [,4] [,5]
[1,]   85   19   26   53   88
[2,]   44   50   66   96   56
[3,]   42   46   37   19   66
[4,]   43   23   13   32   67
[5,]   56   51   21    2   56
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Article connexe - R Loop