一个简单的例子是,我创建了一个扩展 show
的 S4 基础方法。我不想通过重新记录 show
来引起歧义分支,并且我还想通过为新类 myPkgSpClass
添加别名 show,myPkgSpClass-method
,将我的扩展文档整合到 show
的文档中。
#' @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
和基本的 show
。这个问题也适用于除了 show
之外从其他软件包扩展的其他 S4 方法。如果我将所有类特定方法标记到同一个
.Rd
文件中,那么警告就会消失,但模糊性仍然存在,因为该文档条目仍然自动添加 show
别名。如果我手动从 .Rd
文件中删除 \alias{show}
,则问题似乎得到解决,在 Roxygen 或 R CMD check pkgname
期间没有警告。那么如何让 Roxygen2 不添加通用别名?其他背景:
这是一个特定的问题,建立在先前的问题之上,用于导出/记录S4扩展到基本方法: Is it necessary to export base method extensions in an R package? Documentation implications? 这比以下关于使用Roxygen2记录S4方法/类的问题更具体,而且并没有涉及到: How to properly document S4 methods using roxygen2 How to properly document S4 class slots using Roxygen2?