Nắm vững cách dùng for loop để hợp lý hóa các phép tính phức tạp và các hoạt động lặp đi lặp lại khác. Dưới đây là cách dùng for loop trong R kèm ví dụ minh họa.
Loop hay vòng lặp là một cấu trúc cơ bản trong lập trình. Nó lấy một khối code và lặp đi lặp lại nó. For loop là một trong số các kiểu vòng lặp gần như có ở tất cả ngôn ngữ lập trình. For loop của R là một phần không thể thiếu trong phân tích dữ liệu.
For loop phục vụ cho nhiều mục đích khác nhau, từ định dạng đầu ra tới chạy phép tính trên các tập dữ liệu lớn. Cách dùng loop trong R khiến việc phân tích dữ liệu dễ được thực hiện hơn.
Những điều cơ bản cần biết về for loop trong R
Hàm for loop của R tương tự như for loop chuẩn trong Go và hầu hết ngôn ngữ lập trình khác. Được cung cấp làm điểm khởi đầu, nó sẽ chạy code mà bạn trong chứa một số lần nhất định.
Một bộ đếm vòng lặp hiện tại. Bạn có thể truy cập nó từ khối code được liên kết. Loop có thể chạy với một số lần lặp cố định hoặc với tổng độ dài của một mảng, vector hoặc danh sách.
Vòng lặp cố định
Các vòng lặp cố định trong R sẽ có dạng code sau:
for (x in 1:10) {
print(x)
}
X trong loop là biến lưu số lần lặp của hàm loop.
Sau từ khóa “in” là các điểm bắt đầu và kết thúc của vòng lặp. Loop sẽ bắt đầu trình vòng lặp ở số đầu tiên.
Sau mỗi lần code trong vòng lặp chạy, nó sẽ kiểm tra xem trình lặp có bằng số sau dấu hai chấm hay không.
Nếu đúng, code sẽ chạy liên tục sau loop. Nếu không, trình vòng lặp sẽ tăng 1, và khối code trong dấu ngoặc sẽ chạy lại.
For loop trên mảng, danh sách và vector
Giống như loop qua dictionary trong Python, bạn có thể lặp qua cấu trúc dữ liệu phù hợp của R bằng for loop. Bạn có thể dùng cấu dữ trữ liệu có thể lặp bất kỳ sau từ khóa “in”, tại điểm bắt đầu và kết thúc cố định.
Lặp bằng cách này sẽ thay đổi hành vi của code. Tại đây, loop sẽ hoạt động giống như vòng lặp foreach từ ngôn ngữ như C#:
employees <- list("Ben", "Jane", "Suzi", "Josh", "Carol")
for (x in employees) {
print(x)
}
Hiện tại, thay vì x giữ phần lặp hiện tại của loop, nó sẽ chứa đối tượng từ mảng hoặc danh sách lặp hiện tại. Sau khi hoàn thành mỗi vòng lặp, nếu có nhiều các mục hơn trong danh sách, mảng hoặc vector, x sẽ được thiết lập cho mục kế tiếp. Nếu không có nhiều mục hơn, quá trình thực thi sẽ tiếp tục với code sau vòng lặp này.
Hàm nguyên thủy C và for loop
Ngoài cấu trúc dữ liệu được điền sẵn, R có thể soạn một code mới trong khai báo for loop. Để làm việc này, dùng hàm C kết hợp nhiều nhân tố thành một vector mới.
Bạn có thể đơn giản hóa ví dụ trên bằng phương pháp này:
for (x in c("Ben", "Jane", "Suzi", "Josh", "Carol")) {
print(x)
}
Kết quả:
Lệnh bỏ qua loop trong R
Hai lệnh cho phép bạn bỏ qua vòng lặp loop là break và next. Chúng thực hiện việc này theo các cách khác nhau. Bạn cần đảm bảo nắm được sự khác biệt giữa cả hai.
Lệnh break
Khi một loop gặp lệnh break bên trong nó, ngay lập tức nó sẽ đóng vòng lặp. Vì chương trình này thoát vòng lặp khi nó gặp từ khóa break, nó sẽ không chạy bất kỳ code còn lại lần nữa:
days <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
"Sunday")
for (x in days) {
if (x == "Saturday") {
break
}
print(x)
}
Vòng lặp trên sẽ hiện tất cả ngày trong tuần, ngoại trừ ngày cuối tuần.
Lệnh next
Lệnh next cũng bỏ qua một hàm lặp, nhưng khác break, next không đóng loop ngay lập tức. Loop vẫn còn mở nghĩa là bất kỳ code bổ sung trong loop hiện tại sẽ không chạy, nhưng vòng lặp tiếp theo sẽ tiếp tục như kế hoạch:
days <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday",
"Sunday")
for (x in days) {
if (x == "Saturday") {
next
}
print(x)
}
Loop này sẽ xuất từng ngày trong tuần và Chủ Nhật, nhưng nó sẽ không hiện ngày thứ Bảy.
Ví dụ cách dùng for loop trong R
For loop hữu ích trong R ở nhiều tình huống. Chúng có thể là cách tuyệt vời để chạy các phép tính lặp lại, chẳng hạn như cộng số để lấy tổng:
orders <- list(23.4, 699.8, 1042.0)
total <- 0.0
for (order in orders) {
total <- order + total
}
cat("the total is $", total, "\n")
Kết quả:
Trên đây là những điều người dùng cần biết về for loop trong R. Hi vọng bài viết hữu ích với các bạn.