一个简单的例子是我创建了一个扩展show
,这是一个 S4 基础方法。我不想通过在我的包中重新记录来引起歧义分叉,show
并且我还想通过为.show
myPkgSpClass
show,myPkgSpClass-method
#' @export
#' @aliases show,myPkgSpClass-method
#' @rdname myPkgSpClass-class
setMethod("show", "myPkgSpClass", function(object){ show(NA) })
我遇到的问题是,这会在 roxygen2 构建文档期间导致严重警告,Rd files with duplicated alias 'show':
因为此包中有多个类扩展show
,并且 roxygen2 已自动将通用术语添加到所有别名列表中相关*-class.Rd
文件:
\alias{show}
\alias{show,myPkgSpClass-method}
但我认为我不希望在任何情况下都使用通用别名,因为它会强制show
在我的包和 base之间消除歧义show
。此问题也适用于从其他包扩展的其他 S4 方法,除了show
.
如果我将所有特定于类的方法标记到同一个.Rd
文件,那么警告就会消失,但歧义仍然存在,因为show
仍然会为该文档条目自动添加别名。如果我手动\alias{show}
从.Rd
文件中删除,那么问题似乎解决了,在 roxygen 或R CMD check pkgname
. 那么如何让 Roxygen2 不添加通用别名呢?
其他背景:
这是从上一期关于将 S4 扩展导出/记录到基本方法的问题中构建的一个特定问题: 是否有必要在 R 包中导出基本方法扩展?文档影响?
它比以下有关使用 Roxygen2 记录 S4 方法/类的问题更具体且未涵盖: