Обычный подход к написанию функций на R (насколько я понимаю) - это избегать побочных эффектов и возвращать значение из функции.
contained <- function(x) {
x_squared <- x^2
return(x_squared)
}
В этом случае возвращается значение, вычисленное на основе ввода в функцию. Но переменная x_squared
недоступна.
Но если вам нужно нарушить этот базовый принцип функционального программирования (и я не уверен, насколько серьезно R относится к этой проблеме) и вернуть объект из функции , у вас есть два варианта.
escape <- function(x){
x_squared <<- x^2
assign("x_times_x", x*x, envir = .GlobalEnv)
}
Возвращаются оба объекта x_squared
и x_times_x
. Один метод предпочтительнее другого и почему?