我创建了一个包“mypackage”(附加了一个命名空间“mypackage”)
在这个包中有一个函数,我可以用
'myfunction'
或者
'mypackage::myfunction'
现在我想用另一个版本替换myfunction(更新)。
我曾经做
source(path)
其中path是定义更新的“myfunction”的文件的路径
现在,我移至R 2.14.x,该系统无法正常工作,因为显然R会首先检查同一 namespace 中是否存在一个函数,如果存在,则使用该函数而不使用其他函数。
我的问题:如何将更新的函数插入与软件包一相同的 namespace 中?
最佳答案
参见?assignInNamespace
。例如
assignInNamespace("myfunction", foo, "mypackage")
会将对象
foo
分配给命名空间"myfunction"
中名为"mypackage"
的对象。 foo
可以是您想要的任何对象,甚至可以是myfunction
,但是如果在全局环境/工作空间中也有mypackage::myfunction
,则需要小心确保调用myfunction
。关于r - 在特定 namespace 中定义函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8501906/