R-silmukalle, esimerkkejä luettelolle ja matriisille

Sisällysluettelo:

Anonim

A for -silmukka on erittäin arvokas, kun meidän on toistettava elementtiluettelo tai numeroalue. Silmukkaa voidaan käyttää toistamaan luettelo, datakehys, vektori, matriisi tai mikä tahansa muu objekti. Olkaimet ja hakasulkeet ovat pakollisia.

Tässä opetusohjelmassa opimme,

  • Silmukkasyntaksi ja esimerkit
  • Silmukka luettelon yli
  • Silmukka matriisin yli

Silmukkasyntaksi ja esimerkit

For (i in vector) {Exp}

Tässä,

R silmukkaa vektorin kaikki muuttujat ja suorittaa exp: n sisään kirjoitetun laskennan.

Katsotaanpa muutama esimerkki.

Esimerkki 1 : Toistetaan vektorin kaikki elementit ja tulostetaan nykyinen arvo.

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

Tuotos:

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

Esimerkki 2 : Luo epälineaarisen funktion käyttämällä x: n polynomia välillä 1 ja 4 ja tallennamme sen luetteloon

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

Tuotos:

## [1] 1 4 9 16 

For -silmukka on erittäin arvokas koneoppimistehtävissä. Kun olemme kouluttaneet mallin, meidän on säänneltävä malli, jotta vältetään liiallinen sovittaminen. Säännönmukaistaminen on erittäin työläs tehtävä, koska meidän on löydettävä arvo, joka minimoi menetystoiminnon. Auttaaksemme meitä havaitsemaan nuo arvot, voimme käyttää for for -silmukkaa iteroimaan useiden arvojen välillä ja määrittelemään paras ehdokas.

Silmukka luettelon yli

Luettelon eteneminen on yhtä helppoa ja kätevää kuin vektori. Katsotaanpa esimerkki

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

Tuotos:

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

Silmukka matriisin yli

Matriisissa on 2-ulotteinen, rivit ja sarakkeet. Jos haluat toistaa matriisin, meidän on määritettävä kaksi silmukalle, nimittäin yksi riveille ja toinen sarakkeelle.

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

Tuotos:

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