首页 文章

递归源文件到环境

提问于
浏览
4

我想在一个完全隔离的环境中的文件夹中运行一个函数 . 此函数有一些它引用的资源,也在此文件夹中 .

我知道如何使用 source() 将R函数加载到新环境中:

ne <- new.env()
source("myFuncs.R", ne)

但是,如果 myFuncs.R 包含 source()source("helpers.R") 形式调用自身,则这些函数将加载到全局环境中!

如何递归地将文件源文件导入新环境?这可以在_1169169中完成,而不必以某种方式通过正则表达式破解我的方式吗?

1 回答

  • 2

    重新定义 source

    ne <- new.env()
    source <- function(file, local = ne, ...) base::source(file, local, ...)
    
    source("myFuncs.R")
    
    rm(source)
    

相关问题