Za zanko v R s primeri za seznam in matriko

Kazalo:

Anonim

Zanka for je zelo dragocena, kadar moramo itirirati po seznamu elementov ali območju števil. Zanka se lahko uporablja za ponovitev seznama, podatkovnega okvira, vektorja, matrike ali katerega koli drugega predmeta. Oporniki in oglati oklepaji so obvezni.

V tej vadnici se bomo naučili,

  • Za sintakso zanke in primere
  • Za Loop over a list
  • Za Loop over matrix

Za sintakso zanke in primere

For (i in vector) {Exp}

Tukaj,

R bo zavil vse spremenljivke v vektorju in izvedel izračun, zapisan znotraj exp.

Oglejmo si nekaj primerov.

Primer 1 : Ponovimo vse elemente vektorja in natisnemo trenutno vrednost.

# Create fruit vectorfruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')# Create the for statementfor ( i in fruit){print(i)}

Izhod:

## [1] "Apple"## [1] "Orange"## [1] "Passion fruit"## [1] "Banana"

Primer 2 : ustvari nelinearno funkcijo z uporabo polinoma x med 1 in 4 in jo shranimo na seznam

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

Izhod:

## [1] 1 4 9 16 

Zanka for je zelo pomembna za naloge strojnega učenja. Potem ko smo izurili model, ga moramo urediti, da se izognemo prekomernemu prileganju. Regularizacija je zelo mučna naloga, saj moramo najti vrednost, ki minimalizira funkcijo izgube. Za lažje odkrivanje teh vrednosti lahko uporabimo zanko for, da preletimo obseg vrednosti in določimo najboljšega kandidata.

Za Loop over a list

Zavijanje po seznamu je prav tako enostavno in priročno kot zapiranje vektorja. Poglejmo primer

# 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)}

Izhod:

## [1] "Apple" "Orange" "Passion fruit" "Banana"## [1] 10 12 15## [1] FALSE

Za Loop over matrix

Matrica ima dvodimenzionalne vrstice in stolpce. Za iteracijo po matriki moramo definirati dve for zanki, in sicer eno za vrstice in drugo za stolpec.

# 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]))

Izhod:

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