For Loop in R med eksempler på List og Matrix

En for-løkke er meget værdifuld, når vi skal iterere over en liste af elementer eller en række tal. Loop kan bruges til at iterere over en liste, dataramme, vektor, matrix eller ethvert andet objekt. Seler og firkantet beslag er obligatoriske.

I denne tutorial lærer vi,

Til sløjfesyntaks og eksempler

For (i in vector) {
    Exp	
}

Her,

R vil sløjfe over alle variablerne i vektor og udføre beregningen skrevet inde i exp.

Til Loop in R
Til Loop in R

Lad os se et par eksempler.

For Loop in R Eksempel 1: Vi itererer over alle elementerne i en vektor og udskriver den aktuelle værdi.

# 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 Eksempel 2: opretter en ikke-lineær funktion ved at bruge polynomiet af x mellem 1 og 4, og vi gemmer det i en liste

# 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

For-løkken er meget værdifuld til maskinlæringsopgaver. Efter at vi har trænet en model, skal vi regulere modellen for at undgå overpasning. Regularisering er en meget kedelig opgave, fordi vi skal finde den værdi, der minimerer tabsfunktionen. For at hjælpe os med at opdage disse værdier kan vi bruge en for-løkke til at iterere over en række værdier og definere den bedste kandidat.

For Loop over en liste

At løkke over en liste er lige så nemt og bekvemt som at løkke over en vektor. Lad os se et eksempel

# 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 en matrix

En matrix har 2-dimension, rækker og kolonner. For at iterere over en matrix skal vi definere to for loop, nemlig en for rækkerne og en anden for kolonnen.

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