Pre slučku v R s príkladmi pre zoznam a maticu

Obsah:

Anonim

Smyčka for je veľmi cenná, keď potrebujeme iterovať zoznam prvkov alebo rozsah čísel. Smyčku je možné použiť na iteráciu zoznamu, dátového rámca, vektora, matice alebo iného objektu. Konzoly a hranatá zátvorka sú povinné.

V tejto príručke sa dozvieme,

  • Syntax slučky a príklady
  • Pre Loop nad zoznamom
  • Pre slučku cez maticu

Syntax slučky a príklady

For (i in vector) {Exp}

Tu,

R urobí slučku cez všetky premenné vo vektore a vykoná výpočet napísaný vo vnútri exp.

Pozrime sa na niekoľko príkladov.

Príklad 1 : Iterujeme všetky prvky vektora a vytlačíme aktuálnu hodnotu.

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

Výkon:

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

Príklad 2 : vytvorí nelineárnu funkciu pomocou polynómu x medzi 1 a 4 a uložíme ju do zoznamu

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

Výkon:

## [1] 1 4 9 16 

Smyčka for je veľmi cenná pre úlohy strojového učenia. Keď sme model precvičili, musíme ho upraviť, aby sme predišli nadmernému vybaveniu. Regularizácia je veľmi zdĺhavá úloha, pretože musíme nájsť hodnotu, ktorá minimalizuje stratovú funkciu. Aby sme nám tieto hodnoty pomohli zistiť, môžeme na opakovanie rozsahu hodnôt a na určenie najlepšieho kandidáta použiť cyklus for.

Pre Loop nad zoznamom

Opakovanie slučky nad zoznamom je rovnako ľahké a pohodlné ako opakovanie slučky nad vektorom. Pozrime sa na príklad

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

Výkon:

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

Pre slučku cez maticu

Matica má dvojrozmerné riadky a stĺpce. Aby sme iterovali cez maticu, musíme definovať dva cykly for, konkrétne jeden pre riadky a druhý pre stĺpec.

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

Výkon:

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