Rate this post

Để kiểm soát việc thực thi luồng biểu thức trong R, chúng ta sử dụng cấu trúc điều khiển. Các cấu trúc điều khiển này còn được gọi là vòng lặp trong R. Có tám loại cấu trúc điều khiển trong R:

  • if
  • if-else
  • for
  • nested loops
  • while
  • repeat and break
  • next
  • return

Chúng tôi sẽ nghiên cứu các ví dụ của chúng cũng như quy trình thực thi của nó. Vì vậy, hãy bắt đầu với hướng dẫn.

Cấu trúc điều khiển trong lập trình R

R cung cấp các cấu trúc điều khiển tiêu chuẩn khác nhau cho các yêu cầu của chúng tôi. Biểu thức expr bao gồm nhiều câu lệnh có thể được đặt trong dấu ngoặc nhọn {}.

Sẽ hiệu quả hơn nếu sử dụng các hàm tích hợp sẵn trong R hơn là các cấu trúc điều khiển, bất cứ khi nào có thể. Điều này tạo điều kiện cho luồng thực thi được kiểm soát bên trong một hàm.

Cấu trúc điều khiển xác định luồng của chương trình. Sau đó, quyết định được đưa ra sau khi biến được đánh giá. 

Xem thêm For trong PHP là gì ?

Danh sách các cấu trúc điều khiển R với các ví dụ

Bây giờ chúng ta sẽ thảo luận chi tiết về các cấu trúc điều khiển trong R:

Điều kiện if trong R

Tác vụ này chỉ được thực hiện nếu điều kiện này được trả về là TRUE. R làm cho nó thậm chí còn dễ dàng hơn: Bạn có thể bỏ từ sau đó và chỉ định lựa chọn của bạn trong câu lệnh if.

Xem thêm Duyệt mảng trong NumPy

Cú pháp:

if (test_expression) {

statement

}

Thí dụ:

values <- 1:10                                        
if (sample(values,1) <= 10)                               
print(paste(values, "is less than or equal to 10"))

Xem thêm For trong JavaScript

Điều kiện if-else trong R

Một if … else tuyên bố có chứa các yếu tố tương tự như một câu lệnh if (xem phần trước), với một số yếu tố bổ sung:

  • Từ khóa else, được đặt sau khối mã đầu tiên.
  • Khối mã thứ hai, chứa trong dấu ngoặc nhọn, phải được thực hiện, chỉ khi kết quả của điều kiện trong câu lệnh if () là FALSE.

Cú pháp:

if (test_expression) {

statement

} else {

statement

}

Thí dụ:

val1 = 10                                    #Creating our first variable val1
val2 = 5                                     #Creating second variable val2
if (val1 > val2){                            #Executing Conditional Statement based on the comparison 
  print("Value 1 is greater than Value 2")
} else if (val1 < val2){
  print("Value 1 is less than Value 2")
}

for Loop in R

Vòng lặp là một chuỗi các lệnh được lặp lại cho đến khi đạt được một điều kiện nhất định. for, while và repeat, với các mệnh đề bổ sung break và next được sử dụng để xây dựng vòng lặp.

Thí dụ:

Các cấu trúc điều khiển này trong R , được làm bằng hình hộp chữ nhật ‘init’ và hình thoi. Nó được thực hiện một số lần đã biết. for  là một khối được chứa trong dấu ngoặc nhọn.

values <- c(1,2,3,4,5) 
for(id in 1:5){ 
  print(values[id])
  }

Xem thêm Sử dụng ma trận trong R

Vòng lặp lồng nhau trong R

Nó tương tự như tiêu chuẩn cho vòng lặp , mà làm cho nó dễ dàng để chuyển đổi cho vòng một vòng lặp foreach . Không giống như nhiều gói lập trình song song cho R, foreach không yêu cầu phần thân của vòng lặp for được biến thành một hàm. Chúng ta có thể gọi đây là toán tử lồng nhau vì nó được sử dụng để tạo các vòng lặp foreach lồng nhau.

Xem thêm Loop trong SAS, sử dụng vòng lặp trong SAS

Thí dụ:

mat <- matrix(1:10, 2)
for (id1 in seq(nrow(mat))) {
  for (id2 in seq(ncol(mat))) {
    print(mat[id1, id2])
  }
}

While trong R

Định dạng là while (cond) expr , trong đó cond là điều kiện để kiểm tra và expr là một biểu thức.

R sẽ phàn nàn về biểu thức bị thiếu được cho là cung cấp Đúng hoặc Sai được yêu cầu và trên thực tế, nó không biết ‘phản hồi’ trước khi sử dụng nó trong vòng lặp. Chúng ta cũng có thể làm điều này bởi vì, nếu chúng ta trả lời ngay ở lần thử đầu tiên, thì vòng lặp sẽ không được thực hiện.

Thí dụ:

val = 2.987
while(val <= 4.987) {
  val = val + 0.987
  print(c(val,val-2,val-1))
}

Hãy chắc chắn rằng có một cách để thoát ra khỏi vòng lặp while.

Xem thêm break trong c++

Repeat và break trong R

Chúng tôi sử dụng câu lệnh break bên trong một vòng lặp (lặp lại, for, while) để dừng các lần lặp lại và điều khiển luồng điều khiển ra bên ngoài vòng lặp. Khi ở trong một tình huống lặp lồng nhau, nơi có một vòng lặp bên trong một vòng lặp khác, câu lệnh này thoát khỏi vòng lặp trong cùng đang được đánh giá.

Một vòng lặp lặp lại được sử dụng để lặp lại trên một khối mã, nhiều số lần. Không có điều kiện kiểm tra trong một vòng lặp lặp lại để thoát khỏi vòng lặp. Bản thân chúng ta đặt một điều kiện rõ ràng bên trong phần thân của vòng lặp và sử dụng câu lệnh break để thoát khỏi vòng lặp. Không làm như vậy sẽ dẫn đến một vòng lặp vô hạn.

Cú pháp:

repeat {
# simulations; generate some value have an expectation if within some range,
# then exit the loop
if ((value - expectation) <= threshold) {
break
}
}

Vòng lặp lặp lại là một vòng lặp vô hạn và được sử dụng cùng với một câu lệnh break.

Thí dụ:

Dưới đây, mã hiển thị một câu lệnh lặp lại trong R:

Câu lệnh break được sử dụng trong một vòng lặp để dừng các lần lặp lại và điều khiển luồng điều khiển ra bên ngoài vòng lặp.

Ví dụ về câu lệnh lặp trong R:

val <- 5
repeat {
  print(val)
  val <- val+1
  if (val == 10){
    break
  }
}

Ví dụ về câu lệnh Break trong R:

values = 1:10
for (id in values){
  if (id == 2){
    break
  }
  print(id)
}

tiếp theo chuyển sang chu kỳ tiếp theo mà không hoàn thành một lần lặp cụ thể. Trên thực tế, nó chuyển sang đánh giá điều kiện giữ vòng lặp hiện tại. Câu lệnh Next cho phép bỏ qua lần lặp hiện tại của một vòng lặp mà không cần kết thúc nó.

Xem thêm Bộ công cụ Selenium – Selenium Tool Suite

Câu lệnh next trong R

Thí dụ:

x = 1: 4
for (i in x) {
if (i == 2) {
next
}
print(i)
}

Xem thêm Giao diện điều khiển bằng giọng nói (VUI) là gì ?

Câu lệnh return trong R

Đôi khi, chúng tôi sẽ yêu cầu một số hàm để thực hiện xử lý và trả về kết quả. Điều này được thực hiện với  câu lệnh return () trong R.

Cú pháp:

return(expression)

Thí dụ:

check <- function(x) {
if (x > 0) {
result <- "Positive"
} else if (x < 0) {
result <- "Negative"
} else {
result <- "Zero"
}
return(result)
}

Trong cửa sổ giao diện điều khiển, chúng ta gõ:

> check(1)

> check(-10)

> check(0)

Đầu ra:

Xem thêm Break Statement trong Swift

Ví dụ về ứng dụng của cấu trúc điều khiển trong R

Dưới đây là một số ví dụ về ứng dụng của cấu trúc điều khiển trong R:

  1. Ví dụ về cấu trúc IF-ELSE:
x <- 10

if (x > 0) {
  print("Positive number")
} else if (x < 0) {
  print("Negative number")
} else {
  print("Zero")
}

Kết quả: “Positive number”

  1. Ví dụ về cấu trúc FOR loop:
for (i in 1:5) {
  print(i)
}

Kết quả: 1 2 3 4 5

  1. Ví dụ về cấu trúc WHILE loop:
x <- 5

while (x > 0) {
  print(x)
  x <- x - 1
}

Kết quả: 5 4 3 2 1

  1. Ví dụ về cấu trúc SWITCH:
day <- "Wednesday"

switch(day,
       "Monday" = print("It's Monday"),
       "Tuesday" = print("It's Tuesday"),
       "Wednesday" = print("It's Wednesday"),
       "Thursday" = print("It's Thursday"),
       "Friday" = print("It's Friday"),
       print("Invalid day"))

Kết quả: “It’s Wednesday”

  1. Ví dụ về cấu trúc TRY-CATCH:
x <- "abc"

tryCatch({
  y <- as.numeric(x)
  print(y)
}, error = function(e) {
  print("Error occurred")
})

Kết quả: “Error occurred”

Đây chỉ là một số ví dụ đơn giản để minh họa ứng dụng của cấu trúc điều khiển trong R. Bạn có thể áp dụng cấu trúc điều khiển này để xử lý và kiểm soát luồng thực thi của chương trình R trong nhiều tình huống khác nhau.

Tóm tắt việc sử dụng các vòng lặp trong R

  • Hãy cẩn thận khi bạn sử dụng câu lệnh lặp.
  • Đảm bảo rằng sự kết thúc được thiết lập rõ ràng bằng cách kiểm tra một điều kiện hoặc chúng ta có thể kết thúc trong một vòng lặp vô hạn.
  • Tốt hơn là sử dụng một hoặc nhiều lệnh gọi hàm trong vòng lặp nếu một vòng lặp đang quá lớn.

Bản tóm tắt

Cấu trúc điều khiển trong R là xương sống của bất kỳ ngôn ngữ lập trình nào, vì nó thay đổi luồng chương trình. Trong hướng dẫn R này, chúng ta đã nghiên cứu chi tiết về các câu lệnh điều khiển cùng với cú pháp và cách sử dụng cũng như cách vận hành các vòng lặp này với các cấu trúc điều khiển khác nhau.

Xem thêm Sử dụng mảng trong R

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now