这个问题类似于Source script to separate environment in R, not the global environment,但有一个关键的转折。
考虑一个获取另一个脚本的脚本:
# main.R
source("funs.R")
x <- 1
# funs.R
hello <- function() {message("Hi")}
我想获取脚本main.R
并将所有内容保存在“本地”环境中,例如env <- new.env()
。通常,人们可以调用source("main.R", local = env)
并期望一切都在env
环境中。但是,这里不是这样:x
是 的一部分env
,但函数hello
不是!它在.GlobalEnv
.
问题:我如何将脚本提供给 R 中的单独环境,即使该脚本本身提供其他脚本,并且不修改其他正在提供的脚本?
感谢您的帮助,如果我能澄清任何事情,请告诉我。
编辑 1:更新的问题明确指出不能修改作为源的脚本(假设它们不受您的控制)。