Я пишу функцию, которая содержит некоторые условия. Возвращаемое значение функции будет зависеть от такого условия таким образом, что возвращаемое значение может даже не существовать в функции на основе условия. В этом случае я ожидаю, что функция выдаст ошибку. Однако это работает только до тех пор, пока предполагаемое возвращаемое значение также не существует в глобальной среде. Если это так, возвращается значение из глобальной среды, что меня смущает.
Что мне здесь не хватает? Что я делаю не так?
Пример:
xyz <- function(x = NULL, y = NULL)
{
if (x+y > 10) {z <- x + y}
return(z)
}
Если я сейчас запускаю test <- xyz(20, 30)
, я получаю правильный результат (test = 50). Если я запускаю test <- xyz(2, 3)
, я также правильно получаю ошибку:
Ошибка в xyz (2, 3): объект 'z' не найден
Однако теперь я Я создаю значение z в глобальной среде.
z <- 3.14
Когда я сейчас запускаю свою функцию test <- xyz(2, 3)
, в результате я получаю 3.14.
Я ожидал, что функция будет вернуть значение z только в том случае, если оно существует внутри функции. Как я могу это сделать?
Спасибо