我创建了一个包'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首先检查同一命名空间内是否有一个函数,如果有一个,它使用这个而不是其他.
我的问题:如何将更新的函数推送到与包中相同的命名空间?
见?assignInNamespace.例如
assignInNamespace("myfunction", foo, "mypackage")
Run Code Online (Sandbox Code Playgroud)
将对象分配给foo命名"myfunction"空间中指定的对象"mypackage".foo可以是你想要的任何对象,甚至myfunction你需要小心确保你在全球环境/工作区中mypackage::myfunction也有呼叫myfunction.
| 归档时间: |
|
| 查看次数: |
2160 次 |
| 最近记录: |