Работая над какой-то проблемой, я столкнулся с ситуацией, в которой я хотел знать, выполняется ли функция при вызове. Для этого я помещаю оператор печати в функцию.
abc = function(x)
if (x > 0) {
return(x)
print("Go")
} else {
return(0)
print("Run")
}
y = abc(3)
y
# [1] 3
Почему оператор печати не выполняется при вызове abc()?





Это потому, что вы 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