For Loop w R z przykładami dla listy i macierzy
Pętla for jest bardzo przydatna, gdy musimy iterować po liście elementów lub zakresie liczb. Pętla może być używana do iterowania po liście, ramce danych, wektorze, macierzy lub dowolnym innym obiekcie. Nawiasy klamrowe i kwadratowe są obowiązkowe.
W tym samouczku dowiemy się,
Składnia pętli i przykłady
For (i in vector) {
Exp
}
Tutaj,
R wykona pętlę po wszystkich zmiennych w wektorze i wykona obliczenia zapisane w wyrażeniu.

Zobaczmy kilka przykładów.
Dla pętli w R Przykład 1: Iterujemy po wszystkich elementach wektora i drukujemy bieżącą wartość.
# Create fruit vector
fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')
# Create the for statement
for ( i in fruit){
print(i)
}
Wyjście:
## [1] "Apple" ## [1] "Orange" ## [1] "Passion fruit" ## [1] "Banana"
Dla pętli w R Przykład 2: tworzy funkcję nieliniową, używając wielomianu x z zakresu od 1 do 4 i przechowujemy go na liście
# 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)
Wyjście:
## [1] 1 4 9 16
Pętla for jest bardzo przydatna w zadaniach uczenia maszynowego. Po wytrenowaniu modelu musimy go uregulować, aby uniknąć nadmiernego dopasowania. Regularyzacja jest bardzo żmudnym zadaniem, ponieważ musimy znaleźć wartość, która minimalizuje funkcję straty. Aby pomóc nam wykryć te wartości, możemy skorzystać z pętli for w celu iteracji po zakresie wartości i zdefiniowania najlepszego kandydata.
Dla pętli nad listą
Zapętlenie listy jest tak samo łatwe i wygodne, jak zapętlenie wektora. Zobaczmy przykład
# 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)
}
Wyjście:
## [1] "Apple" "Orange" "Passion fruit" "Banana" ## [1] 10 12 15 ## [1] FALSE
Dla pętli nad macierzą
Macierz ma 2 wymiary, wiersze i kolumny. Aby iterować po macierzy, musimy zdefiniować dwie pętle for, a mianowicie jedną dla wierszy i drugą dla kolumny.
# 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]))
Wyjście:
## [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"
