Verschachtelte for-Schleifen in R
-
for
-Schleife in R-Sprache -
Verwenden Sie eine verschachtelte
for
-Schleife, um über Matrixelemente in R . zu iterieren
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
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