Документація для ifelse
штатів:
ifelse
повертає значення з тією ж формою, test
яка заповнена з елементами , вибраними з яких yes
або
в no
залежності від того , елемент test
є TRUE
або FALSE
.
Оскільки ви проходите тестові значення довжини 1, ви отримуєте результати довжини 1. Якщо ви пройдете довші тестові вектори, ви отримаєте довші результати:
> ifelse(c(TRUE, FALSE), c(1, 2), c(3, 4))
[1] 1 4
Так ifelse
призначено для конкретної мети тестування вектора булевих і повернення вектору однакової довжини, наповненого елементами, взятіми з (вектора) yes
та no
аргументами.
Це звичайна плутанина через назву функції, щоб використовувати це, коли дійсно ви хочете просто нормальної if () {} else {}
конструкції.