【发布时间】:2023-03-23 10:52:01
【问题描述】:
更新:我添加了a variant 从Roland's implementation 到kimisc package。
是否有将对象导出到全局环境的便捷函数,可以从函数中调用该函数以使对象全局可用?
我正在寻找类似的东西
export(obj.a, obj.b)
表现得像
assign("obj.a", obj.a, .GlobalEnv)
assign("obj.b", obj.b, .GlobalEnv)
基本原理
我知道<<- 和assign。我需要这个来重构旧代码,这只是脚本的串联:
input("script1.R")
input("script2.R")
input("script3.R")
script2.R 使用来自script1.R 的结果,而script3.R 可能使用来自1 和2 的结果。这会创建一个严重污染的命名空间,我想更改每个脚本
pollute <- the(namespace)
useful <- result
到
(function() {
pollute <- the(namespace)
useful <- result
export(useful)
})()
作为第一个廉价的对策。
【问题讨论】:
-
你的编辑让我迷失了。你有连接脚本,你想重构它们。如何 ?有用的是脚本还是脚本的结果?抱歉,我不明白你的理由。
-
我又试了一次,但可能还是不明白你的用例。
-
一个密切相关的事情:假设导出的对象要包含在一个包的导出对象中。这可以用 roxygen2 来完成,而无需手动编写大量样板文件
#' @export吗?参照。 stackoverflow.com/questions/39917807/…
标签: r convenience-methods