如何改变非导出功能的环境?

时间:2017-06-23 20:53:39

标签: r namespaces package

有没有办法改变包名称空间中定义的非导出函数的执行环境?

我的目标是迅速强制此函数遵循不同的作用域路径来调用一些自定义方法/对象(在新环境中定义),而无需复制整个包。 目前,我没有成功

> environment(ggplot2:::create_layout)
<environment: namespace:ggplot2>
> env <- new.env()
> parent.env(env) <- asNamespace('ggplot2')
> environment(ggplot2:::create_layout) <- new.env
Error in environment(ggplot2:::create_layout) <- new.env : 
  object 'ggplot2' not found

在此特定示例中,我希望create_layout使用ggplot2 ggprotoLayer函数的修改版本以及env环境中存在的x = "Jun/22/177:57am5:13pm9:16" t = x.replace(fulldate_str, "").replace('am',' ').replace('pm',' ').split() print(t) ['7:57', '5:13', '9:16'] 对象。我的逻辑是,改变搜索范围比在命名空间内修改对象的主体更简洁。

0 个答案:

没有答案