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
で区切られた@
タグがなく、スロットが文書化されず、roxygenize()
. また、定義されているクラスの継承を文書化する一貫した方法についても何も述べていません。@import
タグを使用すると、依存関係は一般的に正常に機能すると思います(特定のスロットが別のパッケージの非基本クラスを必要とする場合) 。
要約すると、roxygen(2) スロットの現在のベストプラクティスは何ですか?
現時点では、次の 3 つのオプションを検討する必要があるようです。
- A -- 項目別リスト (上記の例のように)。
- B --
@slot
... しかし、余分なタグや実装を見逃していました。上記の例の項目別リストの代わりとして @slot が含まれていたバージョンでは、@slot を roxygen / roxygen2 で動作させることができませんでした。繰り返しますが、上記の例は roxygen(2) で機能します。@param
C --同じことを達成する、スロットを指定するための代替タグ ( など)。
githubroxygen2
の開発ページに作成した投稿からこの質問を借用/拡張しています。