2017-01-11 31 views
0

当我创建一个简单的函数,它使用mget来调用在.GlobalEnv中分配的一个对象名称,而另一个对象已在函数环境中分配时,我无法使mget函数在两种环境中查找。如何让函数在(看似)嵌套环境(R)中搜索?

例子:

> abc <- 5 
> 
> f1 <- function(x) { 
+ bcd <- 6 
+ foo <- c('abc','bcd') 
+ mget(foo) 
+ } 
>  
> f1() 
Error: value for ‘abc’ not found 

是否有一种方式来获得在这个例子中mget功能找到这两个对象?

我试过将mgetenvir参数改为许多不同的东西,没有任何运气。


注:我不想 “改变” 的内部对象的环境(例如,使用<<-assign(bcd,envir=.GlobalEnv)

回答

1

继承= TRUE

f1 <- function(x) { 
bcd <- 6 
foo <- c('abc','bcd') 
mget(foo, inherits=TRUE) 
} 
f1()