For-Schleife in R mit Beispielen für Liste und Matrix

Eine For-Schleife ist sehr nützlich, wenn wir über eine Liste von Elementen oder einen Zahlenbereich iterieren müssen. Mit einer Schleife können Sie über eine Liste, einen Datenrahmen, einen Vektor, eine Matrix oder ein beliebiges anderes Objekt iterieren. Die Klammern und die eckige Klammer sind obligatorisch.

In diesem Tutorial lernen wir,

For-Schleifensyntax und Beispiele

For (i in vector) {
    Exp	
}

Hier

R durchläuft alle Variablen im Vektor und führt die in exp geschriebene Berechnung durch.

For-Schleife in R
For-Schleife in R

Schauen wir uns ein paar Beispiele an.

For-Schleife in R Beispiel 1: Wir durchlaufen alle Elemente eines Vektors und geben den aktuellen Wert aus.

# Create fruit vector
fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')
# Create the for statement
for ( i in fruit){ 
 print(i)
}

Ausgang:

## [1] "Apple"
## [1] "Orange"
## [1] "Passion fruit"
## [1] "Banana"

For-Schleife in R Beispiel 2: Erstellt eine nichtlineare Funktion, indem wir das Polynom von x zwischen 1 und 4 verwenden und es in einer Liste speichern

# 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)

Ausgang:

## [1]   1  4 9 16

Die for-Schleife ist für maschinelle Lernaufgaben sehr wertvoll. Nachdem wir ein Modell trainiert haben, müssen wir das Modell regulieren, um eine Überanpassung zu vermeiden. Die Regularisierung ist eine sehr mühsame Aufgabe, da wir den Wert finden müssen, der die Verlustfunktion minimiert. Um uns bei der Erkennung dieser Werte zu helfen, können wir eine for-Schleife verwenden, um einen Wertebereich zu durchlaufen und den besten Kandidaten zu definieren.

For-Schleife über eine Liste

Das Durchlaufen einer Liste ist genauso einfach und bequem wie das Durchlaufen eines Vektors. Sehen wir uns ein Beispiel an

# 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)
}

Ausgang:

## [1] "Apple" "Orange" "Passion fruit" "Banana"       
## [1] 10 12 15
## [1] FALSE

For-Schleife über eine Matrix

Eine Matrix hat zwei Dimensionen, Zeilen und Spalten. Um über eine Matrix zu iterieren, müssen wir zwei for-Schleifen definieren, nämlich eine für die Zeilen und eine für die Spalte.

# 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]))  

Ausgang:

## [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"