【问题标题】:How directly access S3 method in roxygen2 R package如何直接访问 roxygen2 R 包中的 S3 方法
【发布时间】:2015-09-20 13:53:30
【问题描述】:

我正在用 roxygen2 编写我的第一个包。该包实现了来自 plm 包的更快版本的pcdtest()。因此我在我的包中调用:

merr <- resid(mod)

包 plm 为 resid 实现了 S3 方法。它以这种方式将其导出到 plm 的 NAMESPACE 中:

S3method("residuals", "panelmodel")
S3method("residuals", "plm")

为了能够使用resid(),我通过

导入整个plm
#' @import plm

有没有办法直接通过:: 访问正确的方法?还是只导入方法?还是其他更好的解决方法?

非常感谢, 迈克尔

【问题讨论】:

  • 可能在您的 importFrom(plm, some_method.some_class) 文件中。
  • 这是我的预期,但我无法让它发挥作用。函数residuals.panelmodel() 没有被导出——它被导出为 S3 方法。我怎样才能访问它? (实际上,我更喜欢直接访问它,即使没有 importFrom 指令。不过,导入一个函数可能比导入整个包更好。)

标签: r roxygen2 r-package


【解决方案1】:

晚了,但是... 不需要附加包以使其注册的 S3 方法可用,它们只需要加载即可。因此,您不一定需要import(plm)(它加载并附加包),而只需要importFrom(plm, somefunction)(它加载包,但只附加此函数),任何声明为export(somefunction) 的函数或符号plm 的命名空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 2015-05-17
    • 2022-11-17
    • 2023-03-16
    • 2014-10-18
    相关资源
    最近更新 更多