Bucla For în R cu exemple pentru Listă și Matrix
O buclă for este foarte valoroasă atunci când trebuie să repetăm o listă de elemente sau o serie de numere. Bucla poate fi folosită pentru a itera o listă, un cadru de date, un vector, o matrice sau orice alt obiect. Bretele și parantezele pătrate sunt obligatorii.
În acest tutorial, vom învăța,
Sintaxa și exemplele pentru buclă
For (i in vector) { Exp }
Aici,
R va bucla peste toate variabilele din vector și va face calculul scris în exp.

Să vedem câteva exemple.
Bucla For în R Exemplul 1: Iterăm peste toate elementele unui vector și imprimăm valoarea curentă.
# Create fruit vector fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana') # Create the for statement for ( i in fruit){ print(i) }
ieșire:
## [1] "Apple" ## [1] "Orange" ## [1] "Passion fruit" ## [1] "Banana"
Bucla For în R Exemplul 2: creează o funcție neliniară folosind polinomul lui x între 1 și 4 și o stocăm într-o listă
# 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)
ieșire:
## [1] 1 4 9 16
Bucla for este foarte valoroasă pentru sarcinile de învățare automată. După ce am antrenat un model, trebuie să regularizăm modelul pentru a evita supra-potrivirea. Regularizarea este o sarcină foarte obositoare, deoarece trebuie să găsim valoarea care minimizează funcția de pierdere. Pentru a ne ajuta să detectăm acele valori, putem folosi o buclă for pentru a repeta o gamă de valori și a defini cel mai bun candidat.
Pentru Buclă peste o listă
Buclă peste o listă este la fel de ușoară și convenabilă ca bucla peste un vector. Să vedem un exemplu
# 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) }
ieșire:
## [1] "Apple" "Orange" "Passion fruit" "Banana" ## [1] 10 12 15 ## [1] FALSE
Pentru Buclă peste o matrice
O matrice are 2 dimensiuni, rânduri și coloane. Pentru a itera peste o matrice, trebuie să definim două bucle for, și anume una pentru rânduri și alta pentru coloană.
# 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]))
ieșire:
## [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"