有没有办法改变包名称空间中定义的非导出函数的执行环境?
我的目标是迅速强制此函数遵循不同的作用域路径来调用一些自定义方法/对象(在新环境中定义),而无需复制整个包。 目前,我没有成功
> 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
ggproto
个Layer
函数的修改版本以及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']
对象。我的逻辑是,改变搜索范围比在命名空间内修改对象的主体更简洁。