Vòng lặp For trong R với các ví dụ về Danh sách và Ma trận
Vòng lặp for rất có giá trị khi chúng ta cần lặp qua danh sách các phần tử hoặc một dãy số. Vòng lặp có thể được sử dụng để lặp qua danh sách, khung dữ liệu, vectơ, ma trận hoặc bất kỳ đối tượng nào khác. Dấu ngoặc nhọn và dấu ngoặc vuông là bắt buộc.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu,
Cú pháp vòng lặp và ví dụ
For (i in vector) { Exp }
Ở đây,
R sẽ lặp qua tất cả các biến trong vector và thực hiện phép tính được viết bên trong exp.

Hãy xem một vài ví dụ.
Vòng lặp For trong R Ví dụ 1: Chúng ta lặp lại tất cả các phần tử của một vectơ và in ra giá trị hiện tại.
# Create fruit vector fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana') # Create the for statement for ( i in fruit){ print(i) }
Đầu ra:
## [1] "Apple" ## [1] "Orange" ## [1] "Passion fruit" ## [1] "Banana"
Vòng lặp For trong R Ví dụ 2: tạo một hàm phi tuyến tính bằng cách sử dụng đa thức của x trong khoảng từ 1 đến 4 và chúng tôi lưu trữ nó trong một danh sách
# 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)
Đầu ra:
## [1] 1 4 9 16
Vòng lặp for rất có giá trị cho các nhiệm vụ học máy. Sau khi huấn luyện xong một mô hình, chúng ta cần chuẩn hóa mô hình để tránh tình trạng quá khớp. Chính quy hóa là một công việc rất tẻ nhạt vì chúng ta cần tìm giá trị cực tiểu hóa hàm mất mát. Để giúp chúng tôi phát hiện những giá trị đó, chúng tôi có thể sử dụng vòng lặp for để lặp qua một phạm vi giá trị và xác định ứng cử viên tốt nhất.
For Lặp lại danh sách
Lặp qua một danh sách cũng dễ dàng và thuận tiện như lặp qua một vectơ. Hãy xem một ví dụ
# 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) }
Đầu ra:
## [1] "Apple" "Orange" "Passion fruit" "Banana" ## [1] 10 12 15 ## [1] FALSE
For Lặp qua ma trận
Ma trận có 2 chiều, hàng và cột. Để lặp qua một ma trận, chúng ta phải xác định hai vòng lặp for, cụ thể là một vòng lặp cho các hàng và một vòng lặp khác cho cột.
# 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]))
Đầu ra:
## [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"