Tài liệu cho ifelse
các tiểu bang:
ifelse
trả 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 yes
hoặc
no
tùy thuộc vào việc phần tử của test
là TRUE
hoặ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ơ) yes
và 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 .