En for-løkke er veldig verdifull når vi trenger å gjenta over en liste over elementer eller en rekke tall. Loop kan brukes til å gjenta over en liste, dataramme, vektor, matrise eller et hvilket som helst annet objekt. Seler og firkantbeslag er obligatorisk.
I denne veiledningen vil vi lære,
- For Loop Syntax og eksempler
- For Loop over en liste
- For Loop over en matrise
For Loop Syntax og eksempler
For (i in vector) {Exp}
Her,
R vil løpe over alle variablene i vektor og gjøre beregningen skrevet inne i exp.
La oss se noen eksempler.
Eksempel 1 : Vi gjentar over alle elementene i en vektor og skriver ut gjeldende verdi.
# Create fruit vectorfruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')# Create the for statementfor ( i in fruit){print(i)}
Produksjon:
## [1] "Apple"## [1] "Orange"## [1] "Passion fruit"## [1] "Banana"
Eksempel 2 : oppretter en ikke-lineær funksjon ved å bruke polynomet på x mellom 1 og 4, og vi lagrer den i en liste
# Create an empty listlist <- c()# Create a for statement to populate the listfor (i in seq(1, 4, by=1)) {list[[i]] <- i*i}print(list)
Produksjon:
## [1] 1 4 9 16
For loop er veldig verdifull for maskinlæringsoppgaver. Etter at vi har trent en modell, må vi regulere modellen for å unngå overmontering. Regularisering er en veldig kjedelig oppgave fordi vi trenger å finne verdien som minimerer tapfunksjonen. For å hjelpe oss med å oppdage disse verdiene, kan vi benytte oss av en for-loop for å gjenta over en rekke verdier og definere den beste kandidaten.
For Loop over en liste
Looping over en liste er like enkelt og praktisk som looping over en vektor. La oss se et eksempel
# Create a list with three vectorsfruit <- list(Basket = c('Apple', 'Orange', 'Passion fruit', 'Banana'),Money = c(10, 12, 15), purchase = FALSE)for (p in fruit){print(p)}
Produksjon:
## [1] "Apple" "Orange" "Passion fruit" "Banana"## [1] 10 12 15## [1] FALSE
For Loop over en matrise
En matrise har 2-dimensjon, rader og kolonner. For å itere over en matrise, må vi definere to for loop, nemlig en for radene og en annen for kolonnen.
# Create a matrixmat <- matrix(data = seq(10, 20, by=1), nrow = 6, ncol =2)# Create the loop with r and c to iterate over the matrixfor (r in 1:nrow(mat))for (c in 1:ncol(mat))print(paste("Row", r, "and column",c, "have values of", mat[r,c]))
Produksjon:
## [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"