如何获得在(看似)嵌套环境(在 R 中)中进行搜索的功能?
How to get function to search in (seemingly) nested environments (in R)?
当我创建一个使用 mget
的简单函数来调用在 .GlobalEnv 中分配的一个对象名称和在函数环境中分配的另一个对象时,我无法获得 mget
在两种环境中查看的功能。
示例:
> abc <- 5
>
> f1 <- function(x) {
+ bcd <- 6
+ foo <- c('abc','bcd')
+ mget(foo)
+ }
>
> f1()
Error: value for ‘abc’ not found
有没有办法让这个例子中的mget
函数找到两个对象?
我已经尝试将 mget
的 envir
参数更改为许多不同的东西,但没有成功。
注意:我不想"change"内部对象的环境(例如,使用<<-
或assign(bcd,envir=.GlobalEnv)
。
继承=TRUE
f1 <- function(x) {
bcd <- 6
foo <- c('abc','bcd')
mget(foo, inherits=TRUE)
}
f1()
当我创建一个使用 mget
的简单函数来调用在 .GlobalEnv 中分配的一个对象名称和在函数环境中分配的另一个对象时,我无法获得 mget
在两种环境中查看的功能。
示例:
> abc <- 5
>
> f1 <- function(x) {
+ bcd <- 6
+ foo <- c('abc','bcd')
+ mget(foo)
+ }
>
> f1()
Error: value for ‘abc’ not found
有没有办法让这个例子中的mget
函数找到两个对象?
我已经尝试将 mget
的 envir
参数更改为许多不同的东西,但没有成功。
注意:我不想"change"内部对象的环境(例如,使用<<-
或assign(bcd,envir=.GlobalEnv)
。
继承=TRUE
f1 <- function(x) {
bcd <- 6
foo <- c('abc','bcd')
mget(foo, inherits=TRUE)
}
f1()