r - 如何使用 Roxygen2 在没有通用别名的情况下添加特定于类的别名?

标签 r documentation s4 roxygen roxygen2

一个简单的例子是我为 show 创建了一个扩展。 ,这是一种 S4 基础方法。我不想通过重新记录 show 引起歧义 fork 在我的包中,我还想将我的扩展的文档合并到 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 之间消除歧义。在我的包裹中,以及底座 show .除了 show 之外,此问题也适用于从其他包扩展的其他 S4 方法。 .

如果我将所有特定于类的方法标记为相同的 .Rd文件,然后警告消失,但歧义仍然存在,因为 show别名仍会自动为该文档条目添加。如果我手动删除 \alias{show}来自 .Rd文件,那么问题似乎解决了,在 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?

最佳答案

似乎在 roxygen2_3.1.0 中已修复:

#' @export
#' @aliases show,myPkgSpClass-method
#' @rdname myPkgSpClass-class
setMethod("show", "myPkgSpClass", function(object){ show(NA) })

产生 myPkgSpClass-class.Rd:
\docType{methods}
\name{show,myPkgSpClass-method}
\alias{show,myPkgSpClass-method}
\usage{
\S4method{show}{myPkgSpClass}(object)
}
\arguments{
  \item{object}{Any R object}
}

正如 Hadley 所说,您不再需要显式设置别名或 rd 名称,例如:
#' my title
#' @export
setMethod("show", "myPkgSpClass", function(object){ show(NA) })

将生成 show-myPkgSpClass-method.Rd:
\docType{methods}
\name{show,myPkgSpClass-method}
\alias{show,myPkgSpClass-method}
\title{my title}
\usage{
\S4method{show}{myPkgSpClass}(object)
}
\arguments{
  \item{object}{Any R object}
}
\description{
my title
}

请注意,在这种情况下,您必须设置描述。如果文档条目为空,则不会生成文档页面。

关于r - 如何使用 Roxygen2 在没有通用别名的情况下添加特定于类的别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8947483/

相关文章:

css - 如何使用 css 设置传单搜索框位置(leaflet.extra 包)

r - 在括号中显示p值而不是SE

r - 提取字符串中的第一句话

r - 如何从 ROCR 包中导出数据

r - 无法让 Highcharter 绘制时间序列

python - 在 Python 类继承中继承文档字符串

java - 如何记录第 3 方库的修改?

documentation - 如何为新开发人员编写网站/软件的技术文档?

r - 将插槽的缺失值设置为默认值

r - 如何在 S4 中使用 data.table 作为父类(super class)