Bài học theo mô-đun (2/2)
Điều kiện và vòng lặp
Để triển khai các thuật toán và quy trình phức tạp trong R, bạn cần có khả năng kiểm soát những hướng dẫn nào sẽ thực hiện và số lần lặp lại chúng.
Câu lệnh có điều kiện
Trong R, cấu trúc điều kiện cơ bản dựa trên if và else. Cú pháp rất giống với các ngôn ngữ như JavaScript hoặc C:
score <- 85
if (score >= 60) {
print("Passed!")
} else {
print("Failed.")
}Dấu ngoặc nhọn {} xác định các khối mã sẽ chạy tùy thuộc vào kết quả của biểu thức boolean bên trong dấu ngoặc đơn.
Vòng lặp for
Vòng lặp for trong R được sử dụng để lặp lại các phần tử trong một chuỗi (chẳng hạn như vectơ hoặc danh sách).
# Print numbers from 1 to 3
for (i in 1:3) {
print(i)
}Trong R, cú pháp 1:3 là cách viết tắt để tạo vectơ c(1, 2, 3).
Chúng ta cũng có thể lặp trực tiếp trên các phần tử của một vectơ hiện có:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}Hàm ifelse
Trong R, hàm ifelse() là phiên bản vector hóa của câu lệnh if-else. Nó cho phép bạn áp dụng một điều kiện cho toàn bộ vectơ trong một thao tác duy nhất, trả về một vectơ kết quả.
scores <- c(55, 80, 45, 90)
# Se score >= 60 assegna "Pass", altrimenti "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"Vòng lặp while
Vòng lặp while được sử dụng để lặp lại một khối mã miễn là điều kiện cụ thể vẫn đúng (TRUE). Điều cần thiết là đảm bảo rằng điều kiện cuối cùng trở thành sai để ngăn chặn các vòng lặp vô hạn.
counter <- 1
while (counter <= 3) {
print(counter)
counter <- counter + 1
}Hãy tự mình thử
Viết câu lệnh điều kiện if-else để kiểm tra xem điểm biến có lớn hơn hoặc bằng 60 hay không. Nếu đúng như vậy, hãy đặt trạng thái thành 'Đạt', nếu không thì đặt thành 'Không đạt'.
Hiển thị gợi ý
Điểm xác minh >= 60 và trạng thái khẳng định <- 'Đạt' hoặc trạng thái <- 'Không đạt'
Giải pháp khả dụng sau 3 lần thử
Viết một vòng lặp for lặp theo trình tự 1:5 và in từng giá trị bằng hàm print().
Hiển thị gợi ý
Usa la sintassi: for (i in 1:5) { print(i) }
Giải pháp khả dụng sau 3 lần thử
Cho vectơ v, hãy viết một vòng lặp for lặp qua từng phần tử và in giá trị kép (val * 2) của nó bằng print().
Hiển thị gợi ý
Lặp qua các phần tử của v: for (val in v) { print(val * 2) }
Giải pháp khả dụng sau 3 lần thử
Cho điểm vectơ, hãy sử dụng hàm ifelse() để kiểm tra phần tử nào lớn hơn hoặc bằng 60. Lưu kết quả (sẽ chứa 'Đạt' hoặc 'Không đạt' cho mỗi phần tử) trong biến results.
Hiển thị gợi ý
Sử dụng hàm: results <- ifelse(scores >= 60, 'Pass', 'Fail')
Giải pháp khả dụng sau 3 lần thử
Sử dụng vòng lặp while để nhân đôi giá trị của x cho đến khi vượt quá 50. Đồng thời tăng biến bộ đếm sau mỗi lần lặp.
Hiển thị gợi ý
Sử dụng vòng lặp while (x <= 50) và cập nhật cả x và bộ đếm bên trong dấu ngoặc nhọn.
Giải pháp khả dụng sau 3 lần thử