Цикл For у R із прикладами для списку та матриці
Цикл for є дуже цінним, коли нам потрібно перебирати список елементів або діапазон чисел. Цикл можна використовувати для перебору списку, кадру даних, вектора, матриці або будь-якого іншого об’єкта. Дужки та квадратні дужки обов’язкові.
У цьому підручнику ми дізнаємося,
Синтаксис і приклади циклу For
For (i in vector) {
Exp
}
Тут,
R перебере всі змінні у векторі та виконає обчислення, записані в exp.

Давайте розглянемо кілька прикладів.
Цикл For в R, приклад 1: Ми повторюємо всі елементи вектора та друкуємо поточне значення.
# Create fruit vector
fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')
# Create the for statement
for ( i in fruit){
print(i)
}
вихід:
## [1] "Apple" ## [1] "Orange" ## [1] "Passion fruit" ## [1] "Banana"
Цикл For в R, приклад 2: створює нелінійну функцію, використовуючи поліном x між 1 і 4, і ми зберігаємо її в списку
# Create an empty list
list <- c()
# Create a for statement to populate the list
for (i in seq(1, 4, by=1)) {
list[[i]] <- i*i
}
print(list)
вихід:
## [1] 1 4 9 16
Цикл for дуже цінний для завдань машинного навчання. Після того, як ми навчили модель, нам потрібно впорядкувати модель, щоб уникнути надмірної підгонки. Регуляризація є дуже виснажливим завданням, оскільки нам потрібно знайти значення, яке мінімізує функцію втрат. Щоб допомогти нам виявити ці значення, ми можемо використати цикл for для перебору діапазону значень і визначення найкращого кандидата.
Для Перейти до списку
Переглядати список так само легко та зручно, як перебирати вектор. Давайте розглянемо приклад
# Create a list with three vectors
fruit <- 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
Для циклу над матрицею
Матриця має 2-вимірність, рядки та стовпці. Щоб виконати ітерацію по матриці, ми повинні визначити два цикли for, а саме один для рядків і інший для стовпця.
# Create a matrix
mat <- matrix(data = seq(10, 20, by=1), nrow = 6, ncol =2)
# Create the loop with r and c to iterate over the matrix
for (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"
