【发布时间】:2012-02-15 09:02:51
【问题描述】:
一个简单的例子是我创建了show 的扩展,这是一个 S4 基础方法。我不想通过在我的包中重新记录show 来引起歧义分叉,并且我还想在新类myPkgSpClass 的文档中将我的扩展文档合并到show,通过添加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 和基础 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 方法/类的问题更具体且未涵盖:
【问题讨论】:
-
github.com/klutometis/roxygen/issues/75 不确定这是否仅适用于 S4。尚未在 S3 泛型上进行测试。
-
此错误在 CRAN 的 2.2.2 版本中仍然存在(在 github 上添加到问题的评论)。它已在 S4 分支中修复,但在过去两年中似乎不活跃。它绝对不是固定在 CRAN 上的。
-
我刚刚在 Twitter 上发现了这一点:Hadley Wickham @hadleywickham 3h roxygen2 3.0.0 添加了全面的 S4(和 RC)支持、更好的 S3 支持等等:blog.rstudio.org/2013/12/09/roxygen2-3-0-0 ... #rstats
-
是的,我还没有测试过 roxygen 3.0,但它报告自动处理 S4 文档。对于这个特定问题,我还不确定它的预期,但是当我弄清楚时我会发布一个答案(如果没有人超过我的话)。
标签: r documentation s4 roxygen roxygen2