Pro smyčku v R s příklady pro seznam a matici

Obsah:

Anonim

Smyčka for je velmi cenná, když potřebujeme iterovat seznam prvků nebo rozsah čísel. Smyčku lze použít k iteraci seznamu, datového rámce, vektoru, matice nebo jiného objektu. Šle a hranatá závorka jsou povinné.

V tomto tutoriálu se naučíme,

  • Syntaxe smyčky a příklady
  • Pro smyčku přes seznam
  • Pro smyčku přes matici

Syntaxe smyčky a příklady

For (i in vector) {Exp}

Tady,

R bude smyčka přes všechny proměnné ve vektoru a provede výpočet napsaný uvnitř exp.

Podívejme se na několik příkladů.

Příklad 1 : Opakujeme všechny prvky vektoru a vytiskneme aktuální hodnotu.

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

Výstup:

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

Příklad 2 : vytvoří nelineární funkci pomocí polynomu x mezi 1 a 4 a uložíme jej do seznamu

# 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ýstup:

## [1] 1 4 9 16 

Smyčka for je velmi cenná pro úkoly strojového učení. Poté, co jsme model proškolili, musíme model upravit, aby nedocházelo k nadměrnému nasazení. Regularizace je velmi zdlouhavý úkol, protože musíme najít hodnotu, která minimalizuje ztrátu. Abychom nám tyto hodnoty pomohli detekovat, můžeme využít smyčku for k iteraci v rozsahu hodnot a definovat nejlepšího kandidáta.

Pro smyčku přes seznam

Opakování seznamu je stejně snadné a pohodlné jako opakování vektoru. Podívejme se na pří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ýstup:

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

Pro smyčku přes matici

Matice má 2-rozměr, řádky a sloupce. Abychom iterovali přes matici, musíme definovat dvě smyčky for, konkrétně jednu pro řádky a druhou pro sloupec.

# 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ýstup:

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