Я использую функцию внутри функции в R
для создания новых переменных. Мне нужно иметь возможность использовать эти переменные в родительской среде, НО не глобально.
Например, одним из решений является использование оператора глобального присваивания <<-
:
f1 <- function(x){
cat("X is ", x, "\n")
f2 <- function(){
cat("X will now be transfromed\n")
y <<- x + 4 # Use Global assignment
}
f2()
cat("Y is ", y, "\n")
}
f1(x = 5)
Но у меня более 20 переменных, так что это загромождает мое рабочее пространство и является плохой практикой.
Мне было интересно, есть ли лучшее решение без необходимости играть с такими понятиями, как vars_to_parent <- new.env()
.
Есть ли какое-то изящное волшебство R
, где у вас есть новый оператор присваивания, может быть, что-то глупое, например:
`<p-` <- function(){assign variable in such a way that its available in parent}
Что может помочь вам получить эти вновь созданные переменные в родительскую среду:
f1 <- function(x){
cat("X is ", x, "\n")
f2 <- function(){
cat("X will now be transfromed\n")
y <p- x + 4 # New cool assignment operator
}
f2()
cat("Y is ", y, "\n")
}
f1(x = 5)