For Loop in R példákkal a listára és a mátrixra
A for ciklus nagyon értékes, ha elemlistán vagy számtartományon kell iterálnunk. A hurok használható lista, adatkeret, vektor, mátrix vagy bármely más objektum feletti iterációra. A kapcsos zárójel és a szögletes zárójel kötelező.
Ebben az oktatóanyagban megtanuljuk,
Cikkszintaxishoz és példákhoz
For (i in vector) { Exp }
Itt,
R végighurkolja a vektor összes változóját, és elvégzi az exp-be írt számítást.

Lássunk néhány példát.
For Loop in R 1. példa: Iteráljuk a vektor összes elemét, és kinyomtatjuk az aktuális értéket.
# Create fruit vector fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana') # Create the for statement for ( i in fruit){ print(i) }
output:
## [1] "Apple" ## [1] "Orange" ## [1] "Passion fruit" ## [1] "Banana"
For Loop in R 2. példa: egy nemlineáris függvényt hoz létre az x 1 és 4 közötti polinomjának felhasználásával, és eltároljuk egy listában
# 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)
output:
## [1] 1 4 9 16
A for ciklus nagyon értékes a gépi tanulási feladatokhoz. Miután betanítottunk egy modellt, rendszeresíteni kell a modellt, hogy elkerüljük a túlillesztést. A rendszerezés nagyon fárasztó feladat, mert meg kell találnunk azt az értéket, amely minimalizálja a veszteségfüggvényt. Ezeknek az értékeknek a felismeréséhez használhatunk egy for ciklust az értéktartomány ismétlésére és a legjobb jelölt meghatározására.
For Loop egy listán
A lista áthurkolása ugyanolyan egyszerű és kényelmes, mint a vektor áthurkolása. Lássunk egy példát
# 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) }
output:
## [1] "Apple" "Orange" "Passion fruit" "Banana" ## [1] 10 12 15 ## [1] FALSE
For Loop over a mátrix
A mátrix kétdimenziós, sorokat és oszlopokat tartalmaz. A mátrixon való iterációhoz kettőt kell meghatároznunk a ciklushoz, mégpedig egyet a sorokhoz és egy másikat az oszlophoz.
# 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]))
output:
## [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"