有没有办法source()
一个脚本在R这样它就作为父环境附加到全局环境(.GlobalEnv
)?
目前,当我获取脚本时,该脚本的所有变量和函数都会出现在我的全局(交互式)环境中。我想将这些变量和函数包含在搜索路径中,但不包含在.GlobalEnv
。也就是说,我希望源脚本的行为类似于附加包,它附加在全局环境和基础环境之间(参见图高级R 环境 http://adv-r.had.co.nz/Environments.html)
以下环境插入似乎可以实现所需的功能:
检查当前搜索路径:
search()
# [1] ".GlobalEnv" "package:stats" "package:graphics"
# [4] "package:grDevices" "package:utils" "package:datasets"
# [7] "package:methods" "Autoloads" "package:base"
为源包添加新环境并使用local
参数时source()
ing:
myEnv <- new.env()
source("some_other_script.R", local=myEnv)
attach(myEnv, name="sourced_scripts")
检查搜索路径:
search()
# [1] ".GlobalEnv" "sourced_scripts" "package:dplyr"
# [4] "package:stats" "package:graphics" "package:grDevices"
# [7] "package:utils" "package:datasets" "package:methods"
# [10] "Autoloads" "package:base"
请注意,我们attach()
新环境after采购,以便dplyr
附加在搜索路径中的脚本环境之后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)