Если переменная не определена в области действия функции, говорят, что R ищет переменную в родительской среде, затем в родительской среде этой среды и т. Д.
Это неКажется, это тот случай, когда переменные передаются в функции:
Foo <- function (y) {
message('In Foo, x = ', x)
}
Func1 <- function (x = 1) {
message('In Func1, x = ', x)
Foo(1)
lapply(1:2, Foo)
}
Func2 <- function () {
x <- 2
message('In Func2, x = ', x)
Foo(1)
}
Func1(x = 1) # Foo throws error
Func2() # Foo throws error
x <- 99
Func2() # Now Foo uses value of x from global environment
remove(x)
Как включить функцию Foo
для поиска родительской функции и ее родителей по значению переменной вместо использованиязначение в глобальной среде?