Как упоминалось в комментариях, ifelse()
- это векторизованная версия if()
. Вы правы, что if()
предназначен для оценки одного условия - в частности, для оценки первого условия, если оно передано с логическим векторным вводом.
x <- 1:5
y <- rep(3, 5)
ifelse(x > y, "yes", "no")
## [1] "no" "no" "no" "yes" "yes"
if(x > y) "yes" else "no"
## [1] "no"
## Warning message:
## In if (x > y) "yes" else "no" :
## the condition has length > 1 and only the first element will be used
Of конечно, такие вещи, как any()
, all()
, и т. д. c. может использоваться для сжатия логического вектора в один логический элемент для использования с vanilla if()
.