Петља фор је веома вредна када треба да прелистамо листу елемената или распон бројева. Петља се може користити за прелазак преко листе, оквира података, вектора, матрице или било ког другог објекта. Заграде и квадратни носач су обавезни.
У овом упутству ћемо научити,
- За синтаксу петље и примере
- За петљу преко листе
- За Петља преко матрице
За синтаксу петље и примере
For (i in vector) {Exp}
Ево,
Р ће петљати преко свих променљивих у вектору и извршити прорачун написан унутар екп.
Погледајмо неколико примера.
Пример 1 : Прелиставамо све елементе вектора и исписујемо тренутну вредност.
# Create fruit vectorfruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')# Create the for statementfor ( i in fruit){print(i)}
Излаз:
## [1] "Apple"## [1] "Orange"## [1] "Passion fruit"## [1] "Banana"
Пример 2 : креира нелинеарну функцију коришћењем полинома к између 1 и 4 и чувамо је на листи
# 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)
Излаз:
## [1] 1 4 9 16
Петља фор је веома вредна за задатке машинског учења. Након што смо обучили модел, морамо га уредити да бисмо избегли прекомерно уклапање. Регуларизација је врло досадан задатак јер морамо пронаћи вредност која минимализује функцију губитка. Да би нам помогли да откријемо те вредности, можемо користити фор петљу за итерацију кроз опсег вредности и дефинисање најбољег кандидата.
За петљу преко листе
Превлачење по списку је једнако лако и згодно као и прелазак преко вектора. Да видимо пример
# 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)}
Излаз:
## [1] "Apple" "Orange" "Passion fruit" "Banana"## [1] 10 12 15## [1] FALSE
За Петља преко матрице
Матрица има дводимензионалне редове и колоне. Да бисмо прешли преко матрице, морамо дефинисати две фор петље, и то једну за редове и другу за колону.
# 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]))
Излаз:
## [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"