对于使用 roxygen(2) 记录类,指定标题和描述/细节似乎与函数、方法、数据等相同。但是,插槽和继承是它们自己的一种动物。在 roxygen2 中记录 S4 类的最佳实践是什么(当前的或计划的)?
尽职调查:
我发现@slot
在 roxygen 的早期描述中提到了一个标签。
一个 2008 R-forge 邮件列表帖子
似乎表明这已经死了,并且@slot
在 roxygen 中不支持:
roxygen2 是这样吗?前面提到的帖子建议用户应该使用 LaTeX 标记制作自己的逐项列表。例如,扩展该类的新 S4 类"character"
将被编码和记录如下:
#' The title for my S4 class that extends \code{"character"} class.
#'
#' Some details about this class and my plans for it in the body.
#'
#' \describe{
#' \item{myslot1}{A logical keeping track of something.}
#'
#' \item{myslot2}{An integer specifying something else.}
#'
#' \item{myslot3}{A data.frame holding some data.}
#' }
#' @name mynewclass-class
#' @rdname mynewclass-class
#' @exportClass mynewclass
setClass("mynewclass",
representation(myslot1="logical",
myslot2="integer",
myslot3="data.frame"),
contains = "character"
)
然而,尽管这可行,但这种记录插槽\describe
的\item
方法似乎与 roxygen(2) 的其余部分不一致,因为没有- 分隔的@
标签,并且插槽可能会在roxygenize()
. 它也没有说明记录正在定义的类的继承的一致方式。@import
我想依赖通常仍然可以使用标签正常工作(如果特定插槽需要来自另一个包的非基类) 。
那么,总而言之,roxygen(2) 插槽的当前最佳实践是什么?
目前似乎有三个选项需要考虑:
- A -- 分项清单(如上例)。
- B -
@slot
...但我错过了额外的标签/实现。我无法让@slot 与 roxygen / roxygen2 在上面示例中作为逐项列表的替代品的版本中使用。同样,上面的示例确实适用于 roxygen(2)。- C - 一些用于指定插槽的替代标签,例如
@param
,可以完成同样的事情。
我正在从我在githubroxygen2
上的开发页面上发表的帖子中借用/扩展这个问题。