Документація для 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 {}конструкції.