Tài liệu cho ifelsecác tiểu bang:
ifelsetrả về một giá trị có cùng hình dạng testđược lấp đầy bởi các phần tử được chọn từ một trong hai yeshoặc
notùy thuộc vào việc phần tử của testlà TRUEhoặc FALSE.
Vì bạn đang vượt qua các giá trị kiểm tra có độ dài 1, bạn sẽ nhận được kết quả của độ dài 1. Nếu bạn vượt qua các vectơ kiểm tra dài hơn, bạn sẽ nhận được kết quả dài hơn:
> ifelse(c(TRUE, FALSE), c(1, 2), c(3, 4))
[1] 1 4
Vì vậy ifelseđược thiết kế cho mục đích cụ thể là kiểm tra một vectơ boolean và trả về một vectơ có cùng độ dài, chứa đầy các phần tử lấy từ (vectơ) yesvà các nođối số.
Đó là một sự nhầm lẫn phổ biến, vì tên của hàm, sử dụng nó khi bạn thực sự muốn chỉ là một if () {} else {}công trình bình thường .