在特定命名空间中定义函数

Roc*_*nce 6 namespaces r

我创建了一个包'mypackage'(附带了一个命名空间'mypackage')在这个包中有一个我可以调用的函数

'myfunction'
Run Code Online (Sandbox Code Playgroud)

要么

'mypackage::myfunction'
Run Code Online (Sandbox Code Playgroud)

现在我想用另一个版本替换myfunction(更新).

我曾经做过

source(path)
Run Code Online (Sandbox Code Playgroud)

其中path是文件的路径,其中定义了更新的"myfunction"

现在我转到R 2.14.x并且这个系统不起作用,因为显然R首先检查同一命名空间内是否有一个函数,如果有一个,它使用这个而不是其他.

我的问题:如何将更新的函数推送到与包中相同的命名空间?

Rei*_*son 8

?assignInNamespace.例如

assignInNamespace("myfunction", foo, "mypackage")
Run Code Online (Sandbox Code Playgroud)

将对象分配给foo命名"myfunction"空间中指定的对象"mypackage".foo可以是你想要的任何对象,甚至myfunction你需要小心确保你在全球环境/工作区中mypackage::myfunction也有呼叫myfunction.