Az R hurokhoz, példákkal a listához és a mátrixhoz

Tartalomjegyzék:

Anonim

Az A for ciklus nagyon értékes, ha el kell ismételnünk egy elemlistát vagy egy számtartományt. A hurok segítségével felsorolható egy lista, adatkeret, vektor, mátrix vagy bármely más objektum. A zárójel és a szögletes zárójel kötelező.

Ebben az oktatóanyagban megtanuljuk,

  • A hurok szintaxisához és példáihoz
  • A lista áttekintéséhez
  • For hurok egy mátrix fölött

A hurok szintaxisához és példáihoz

For (i in vector) {Exp}

Itt,

R a vektor összes változóját körbezárja, és elvégzi az exp-be írt számítást.

Lássunk néhány példát.

1. példa : Iteráljuk a vektor összes elemét, és kinyomtatjuk az aktuális értéket.

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

Kimenet:

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

2. példa : létrehoz egy nemlineáris függvényt az x 1 és 4 közötti polinomjának felhasználásával, és egy listában tároljuk

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

Kimenet:

## [1] 1 4 9 16 

A for ciklus nagyon értékes a gépi tanulási feladatokhoz. Miután betanítottunk egy modellt, szabályoznunk kell a modellt, hogy elkerüljük a túlillesztést. A szabályozás nagyon unalmas feladat, mert meg kell találnunk azt az értéket, amely minimalizálja a veszteségfüggvényt. Ezeknek az értékeknek a felderítésében segítségünkre lehet egy for ciklust használni, hogy ismétlődjünk egy értéktartományon, és meghatározzuk a legjobb jelöltet.

A lista áttekintéséhez

A listák közötti hurkolás ugyanolyan egyszerű és kényelmes, mint a vektorok közötti hurkolás. Lássunk egy példát

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

Kimenet:

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

For hurok egy mátrix fölött

Egy mátrix kétdimenziós, sorokkal és oszlopokkal rendelkezik. A mátrixon történő ismétléshez kettőt kell meghatároznunk a hurokhoz, mégpedig egyet a sorokhoz, egyet pedig az oszlophoz.

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

Kimenet:

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