我希望在包命名空间中推送一个函数,这样它就可以访问该包的内部对象(让我们以stats包为例)。我试过用
myfun <- function(x) print(x)
env = loadNamespace("stats")
assign("myfun", myfun , env)但它是锁着的。所以我试着解锁我的对象
unlockBinding("myfun", env)因为我的乐趣还不存在,所以我不能解锁它。
有什么帮助吗?
发布于 2010-08-04 10:25:11
沿着@Hadley的解决方案的思路,但是使用名称空间的环境,如何:
environment(myfun) <- asNamespace('stats')发布于 2010-06-23 05:43:48
为什么不将新函数的环境设置到正确的位置呢?
myfun <- function(x) print(x)
environment(myfun) <- as.environment("package:stats")发布于 2010-06-22 22:46:58
可以使用三重冒号运算符:::访问包的内部对象。例如,让我们看看as.roman和utils:::.roman2numeric。(请将其与utils::.roman2numeric进行比较。)这可以帮助您避免将函数放在名称空间中。
您可能还希望查看mvbutils包中的dont.lockBindings,它可以阻止名称空间被锁定。
https://stackoverflow.com/questions/3094232
复制相似问题