23

RdS3ジェネリック(別のパッケージで定義されている)には密接に関連する2つのメソッドがあるため、同じファイルにそれらを文書化したいと思いました。ただし、引数を個別にドキュメント化すると、R CMD check「ドキュメントオブジェクトの\argumentエントリが重複している」という警告が表示されます。

##' 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は、ジェネリックが定義するものであるためでなければなりません。ただし、それが異なるクラスでなければならないという理由だけで、それに関するドキュメントはメソッドごとに異なります。このために2つの別々のドキュメントファイルを作成することもできますが、それらは密接に結合されているため、一緒に保持したいと思います。最初の呼び出しですべての可能なクラスをリストdataし、後続のクラスには何も含まない可能性がありますが、これは、Roxygenのポイントのようにすべてをまとめるのではなく、最初の関数で2番目の関数を文書化することを意味します。

複数のメソッドから(引数を複製せずに)合法的なものを作成するためにroxygenを取得することは可能ですか?そうでない場合、このシナリオを処理するための最良の方法は何ですか?

4

2 に答える 2

2

S3 ジェネリック メソッドの背後にある考え方は、同じ引数に対して異なる記述をする必要はないということだと思います。

##' @methodと を使用して S3 メソッドのドキュメントを作成する場合、(ディスパッチが行われる引数に対して) どのクラスが受け入れられるかは、使用法のセクションから明らかです##' @S3method。他の引数については、異なる説明が必要であることは、おそらく異なる引数名を使用する必要があることを示していると言えます。

だからから:

##' Create a ggplot of a Kaplan-Meier Survival curve(s)
##'
##' @param data  the object to be plotted
##' @param \dots Unused
##' @method autoplot survfit
##' @S3method autoplot survfit
##' @return A ggplot2 object
autoplot.survfit <- function(data, ...) {
    NULL
}

##' @rdname autoplot.survfit
##' @method autoplot survfit.fortify
##' @S3method autoplot survfit.fortify
autoplot.survfit.fortify <- function(data, ...) {
    NULL
}

私は一緒に取得しますroxygen2

Create a ggplot of a Kaplan-Meier Survival curve(s)

Description:

Create a ggplot of a Kaplan-Meier Survival curve(s)

Usage:

     ## S3 method for class 'survfit'
      autoplot(data, ...)

     ## S3 method for class 'survfit.fortify'
      autoplot(data, ...)

Arguments:

    data: the object to be plotted

     ...: Unused

Value:

     A ggplot2 object
于 2012-12-14T19:43:13.043 に答える