我想找到环境并将它们作为变量。我的目标是能够对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.
谢谢!
答案 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
,加载其他所需的包等。