Verschachtelte for-Schleifen in R

Jinku Hu 30 Januar 2023
  1. for-Schleife in R-Sprache
  2. Verwenden Sie eine verschachtelte for-Schleife, um über Matrixelemente in R . zu iterieren
Verschachtelte for-Schleifen in R

Dieser Artikel stellt die verschachtelten for-Schleifen in R vor.

for-Schleife in R-Sprache

Die for-Schleife ist in der Sprache R mit ähnlichen Heuristiken wie in den meisten Programmiersprachen verfügbar. Es wiederholt den angegebenen Codeblock mehrmals. Die Syntax der for-Schleife lautet wie folgt.

for (item in set) {}

item ist ein Objekt, das das iterierte Element aus dem set speichert. Die for-Schleife gibt keine Ausgabe zurück, daher müssen wir die print-Funktion aufrufen, um den word-Wert bei jeder Iteration auszugeben.

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

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

Ausgabe:

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

Wir können auch die for-Schleife implementieren, bei der der Index als Variable verfügbar gemacht wird. In diesem Fall wird die Funktion length verwendet, um die Größe des Vektors vec1 zu berechnen und vom ersten Element bis zum Ende zu iterieren. Beachten Sie, dass die Notation 1: wichtig ist und den Anfang des Bereichs angibt. Der folgende Beispielcode erstellt einen String-Vektor, der mit der for-Schleife in einen anderen Vektor der gleichen Größe kopiert wird.

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

Ausgabe:

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

Verwenden Sie eine verschachtelte for-Schleife, um über Matrixelemente in R . zu iterieren

Verschachtelte Schleifen können mit der Schleifenstruktur for realisiert werden. Dies kann verwendet werden, um über Matrixelemente zu iterieren und sie mit Zufallswerten zu initialisieren. Beachten Sie, dass die allgemeine Notation dieselbe ist wie im vorherigen Beispiel, außer dass das Ende des Bereichs mit den Funktionen nrow und ncol berechnet wird. nrow und ncol geben die Anzahl der Zeilen bzw. Spalten des Arrays zurück.

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

Ausgabe:

[,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

Die verschachtelte Schleifenstruktur funktioniert im vorherigen Beispielcode jedoch einwandfrei. Die Matrix-Initialisierung erfolgt besser mit der Funktion sample, die direkt als erstes Argument der Funktion matrix verkettet ist, wie im folgenden Ausschnitt gezeigt.

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

Ausgabe:

[,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
Autor: 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

Verwandter Artikel - R Loop