如何将环境作为变量?

时间:2013-08-02 22:20:28

标签: r

我想找到环境并将它们作为变量。我的目标是能够对sys.source进行一些后续调用,即使我将环境视为变量,但我知道它的名字。 例如:

MyFuns <- attach(NULL, name = 'Myfuns')
sys.source('myFunctions.R', envir = Myfuns)
rm('MyFuns')
any(grepl('MyFuns', search())) # It is there
sys.source('oneMoreFunction.R', envir = Myfuns) # Will not work because the variable as been suppressed.

谢谢!

1 个答案:

答案 0 :(得分:2)

由于您已附加环境,因此可以使用as.environment

重新找到它
attach(NULL, name = "Myfuns")
assign("a", 1, env = as.environment("Myfuns"))
get("a", env = as.environment("Myfuns"))

sys.source('myFunctions.R', envir = as.environment("Myfuns"))

您可能还想考虑创建一个包,然后使用devtools::load_all()来加载代码 - 它还将加载代码,编译C代码,尊重NAMESPACE,加载其他所需的包等。