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