我的S3泛型函数有两个方法(来自另一个包),它们非常相关,因此我想将它们记录在同一个Rd
文件中。但是,当我单独记录它们的参数时,R CMD check
会发出警告,指出“Duplicated \argument entries in documentation object”。
##' Create a ggplot of a Kaplan-Meier Survival curve(s)
##'
##' @param data A \code{survfit} object returned from \code{\link{survfit}}
##' @param \dots Unused
##' @return A ggplot2 object
autoplot.survfit <- function(data, ...) {
NULL
}
##' @rdname autoplot.survfit
##' @param data A \code{\link{survfit.fortify}} object returned from \code{\link{fortify.survfit}}
autoplot.survfit.fortify <- function(data, ...) {
NULL
}
第一个参数必须是data
,因为这是泛型定义的内容。但是,对于不同的方法,其文档不同,可能因为它必须属于不同的类。我可以为此编写两个单独的文档文件,但它们是紧密耦合的,所以我想将它们放在一起。我可以在第一次调用中列出所有可能的data
类,并在后续调用中没有任何内容,但这意味着我正在使用第一个函数记录第二个函数,而不是保持所有内容在一起,这正是Roxygen的目的。是否可能让Roxygen从多个方法中创建合法的(不重复参数)?如果不行,如何处理这种情况?
@param
覆盖两种方法吗?如果你手写Rd文件,你会写\item{data}{an object of class \code{"survfit"} or \code{"survfit.fortify} as returned by \code{\link{survfit}} or \code{\link{fortify.survfit}}
。重复记录这个参数没有意义,而且Rd解析器也不允许这样做。我会在第一个S3方法的文档块中只写一个@param data blah blah
(如上所述)并将其留在那里。 - Gavin Simpson