【问题标题】:define a function in a specific namespace在特定命名空间中定义函数
【发布时间】:2012-01-20 01:48:48
【问题描述】:

我创建了一个包“mypackage”(附加了一个命名空间“mypackage”) 在这个包中有一个函数,我可以用它来调用

'myfunction'

'mypackage::myfunction'

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

我曾经做过

source(path)

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

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

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

【问题讨论】:

    标签: r namespaces


    【解决方案1】:

    ?assignInNamespace。例如

    assignInNamespace("myfunction", foo, "mypackage")
    

    会将对象foo 分配给命名空间"mypackage" 中名为"myfunction" 的对象。 foo 可以是您想要的任何对象,甚至是myfunction,但如果您在全局环境/工作区中也有myfunction,则需要小心确保调用mypackage::myfunction

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      相关资源
      最近更新 更多