Когда я недавно перечитывал Hadley Advanced R, я заметил, что в главе 6 он сказал, что `if` можно использовать как функцию
`if`(i == 1, print("yes"), print("no"))
(Если у вас есть физическая книга в руке, она находится на странице 80)
Мы знаем, что ifelse является медленным (Неужели ifelse действительно вычисляет оба своих вектора каждый раз? Он медленный?), когда он оценивает все аргументы. Будет ли `if` хорошей альтернативой этому, поскольку if, кажется, оценивает только аргументы TRUE (это только мое предположение)?
Обновление. На основе ответов от @Benjamin и @Roman и комментариев от @Gregor и многих других ifelse представляется лучшим решением для векторизованных вычислений. Я беру @Benjamin ответ здесь, поскольку это обеспечивает более полное сравнение и для благосостояния сообщества. Однако оба ответа (и комментарии) заслуживают внимания.