R:扩展另一个包中定义的S3方法

时间:2019-04-02 01:32:53

标签: r methods extension-methods

假设包 A 定义并记录了foo(),并为bar1对象实现了它。

在新的软件包 B 中,我想扩展此方法并添加其对bar2对象的支持。

当前,我首先重新导出该方法:

#' @rdname foo
#' @importFrom A foo
#' @export
A::foo

然后继续扩展其行为:

#' @rdname foo
#' @method foo bar2
#' @export
foo.bar2 <- function(x, newparam = 3.14, ...){
  dosomething(x, newparam)
}

不幸的是,这似乎在devtools检查时造成冲突,并返回以下警告:

> checking Rd metadata ... WARNING
  Rd files with duplicated name 'reexports':
    'foo.Rd'
  Rd files with duplicated alias 'reexports':
    'foo.Rd'

因此,我想知道这是在不引起定义或文档冲突的情况下扩展方法的最佳方法吗?我可以不必依赖软件包A来做到这一点吗?谢谢!

0 个答案:

没有答案