Неисполнение инструкции при вызове функции

#r #function

#r #функция

Вопрос:

Работая над какой-то проблемой, я столкнулся с ситуацией, в которой я хотел знать, выполнялась ли функция при вызове. Для этого я помещаю в функцию инструкцию print.

 abc = function(x)
    if(x > 0) {
      return(x)
      print("Go")
    } else {
      return(0)
      print("Run")
    }

y = abc(3)
y
# [1] 3
  

Почему инструкция print не выполняется при вызове abc()?

Ответ №1:

Это потому, что вы return вводите перед print вводом. Измените последовательность этих двух инструкций, и она должна вывести

 abc = function(x) {
    if(x > 0) {
      print("Go")
      return(x)
    } else {
      print("Run")
      return(0)
   }
}

abc(3)
#[1] "Go"
#[1] 3

abc(-3)
#[1] "Run"
#[1] 0