我创建了一个包'mypackage'(附带了命名空间'mypackage') 在这个包中有一个我可以用
调用的函数'myfunction'
或
'mypackage::myfunction'
现在我想用另一个版本替换myfunction(更新)。
我曾经做过
source(path)
其中path是文件的路径,其中定义了更新的“myfunction”
现在我转移到R 2.14.x并且这个系统不起作用,因为显然R首先检查同一命名空间内是否有一个函数,如果有一个函数,它会使用这个而不是其他函数。
我的问题:如何将更新的函数推送到与包1相同的命名空间中?
答案 0 :(得分:8)
请参阅?assignInNamespace
。例如
assignInNamespace("myfunction", foo, "mypackage")
将对象foo
分配给名称空间"myfunction"
中名为"mypackage"
的对象。 foo
可以是您想要的任何对象,即使是myfunction
,但如果您在全局环境/工作区中也有mypackage::myfunction
,则需要小心确保调用myfunction
。