Chuyển đến nội dung chính

Hàm IF ELSE trong R

Tìm hiểu chi tiết về hàm ifelse(), gồm cú pháp, cách xác định số lẻ hay chẵn, và ví dụ kiểm tra sinh viên đỗ hay trượt kỳ thi.
· 4 phút đọc

Khám phá cùng AI

banner

Hàm 'ifelse()' là dạng thay thế và rút gọn của câu lệnh if-else trong R. Ngoài ra, hàm này sử dụng kỹ thuật "vector hóa", giúp thao tác nhanh hơn. Tất cả giá trị của vector được truyền làm đối số cùng lúc thay vì truyền từng giá trị nhiều lần.

Cú pháp

Cú pháp của hàm 'ifelse()' trong R như sau:
ifelse(logical_expression, a , b)

Các đối số trong 'ifelse' có ý nghĩa:
1.logical_expression: Chỉ định một vector đầu vào, và sẽ trả về một vector đầu ra cùng kích thước.
2. a: Thực thi khi logical_expression là TRUE.
3. b: Thực thi khi logical_expression là FALSE.

Ví dụ (Số lẻ hay chẵn)

Hãy xem nhanh ví dụ dưới đây, đoạn mã sau sẽ kiểm tra các số là lẻ hay chẵn. 'v' là vector gồm một danh sách số. Trong hàm 'ifelse', biểu thức 'v%%2==1' kiểm tra phần dư của mỗi số trong 'v' có bằng một hay không; nếu TRUE sẽ in "odd", còn nếu FALSE sẽ in "even".

v = c(14,7,6,9,2)
ifelse(v %% 2 == 1,"odd","even")
  1. 'even'
  2. 'odd'
  3. 'even'
  4. 'odd'
  5. 'even'

Đoạn mã trên cho kết quả:
'even' 'odd' 'even' 'odd' 'even'
Cách hoạt động bên trong của mã trên tạo ra một vector logic là c(FALSE,TRUE,FALSE,TRUE,FALSE). Tham số thứ nhất sẽ tạo một vector chuỗi c("odd","odd","odd","odd","odd"), còn tham số thứ hai tạo ra vector chuỗi c("even',"even","even","even","even"). Cuối cùng, khi phần tử vector tương ứng là TRUE thì được đổi thành 'odd', còn 'FALSE' sẽ đổi thành 'even'.

Ví dụ (Đỗ hay trượt)

Ví dụ dưới đây minh họa cách dùng hàm 'ifelse()' cùng với DataFrame. Nếu sinh viên đạt điểm trên 40, thì được xem là 'Pass' (Đỗ), ngược lại là 'Fail' (Trượt) trong kỳ thi.

Hãy nhanh chóng tạo một Data Frame, trong đó cột tên sinh viên là "Student" với vector đầu vào gồm ("Ron", "Jake", "Ava", "Sophia", "Mia"). Cột còn lại là "Marks", chứa vector đầu vào với các giá trị (35,75,45,30,85). Cuối cùng, hai cột được kết hợp để tạo thành data frame và lưu vào 'x'.

x <- data.frame("Student" = c("Ron","Jake","Ava","Sophia","Mia"),"Marks" = c(35,75,45,30,85))
str(x)
'data.frame':    5 obs. of  2 variables:
 $ Student: Factor w/ 5 levels "Ava","Jake","Mia",..: 4 2 1 5 3
 $ Marks  : num  35 75 45 30 85
'data.frame':    5 obs. of  2 variables:
 $ Student: Factor w/ 5 levels "Ava","Jake","Mia",..: 4 2 1 5 3
 $ Marks  : num  35 75 45 30 85

Đoạn mã trên hiển thị cấu trúc của Data Frame bằng 'str(x)', cho thấy có 5 quan sát với 2 biến, và các giá trị tương ứng của Student và Marks được in ra.

x$Result = ifelse(x$"Marks">40,"Pass","Fail")
print(x)

Đoạn mã trên cho kết quả như sau:

    Student Marks Result
1    Ron    35   Fail
2   Jake    75   Pass
3    Ava    45   Pass
4 Sophia    30   Fail
5    Mia    85   Pass 

Trong đoạn mã trên, 'x$Result' là một biến được dùng để thêm cột mới 'Result' vào Data Frame. Hàm 'ifelse()' có biểu thức 'x$"Marks">40', kiểm tra các giá trị trong cột Marks và quyết định 'Result' là 'Pass' khi điểm lớn hơn 40, nếu không thì 'Result' là 'Fail'.

Chúc mừng

Chúc mừng bạn đã hoàn thành hướng dẫn này!

Bạn đã học về hàm ifelse() của R với cú pháp, cách xác định một số là Lẻ hay Chẵn, và cuối cùng là ví dụ kiểm tra sinh viên Đỗ hay Trượt trong kỳ thi.

Nếu muốn tìm hiểu thêm về R, bạn có thể xem tất cả tài nguyên về R tại đây.

Hãy xem hướng dẫn Sử dụng Hàm trong R.

Chủ đề

Liên quan