3

重複の可能性:
Roxygen2を使用してS4クラススロットを適切に文書化する方法

S4 classesRStudioとを使用したパッケージを作成したいと思いますroxygen2。パッケージにroxygen2いくつかを導入したとき、構文を使用してすべての関数をすでに文書化していました。S4 classes

今、私は、すぐに使える「@slot」機能がないことに気づきました。それで、他の機能のためにすべてのドキュメントを機能させ続け、このスレッドS4 classesで提案されているように手動でドキュメントを作成するにはどうすればよいでしょうか?

つまり、古い学校の機能との両方を含むパッケージを構築するために、どのワークフローをお勧めしますS4 classesか?

編集:.Rdファイルを作成しないようにRStudioで構築されたツールを構成することをお勧めしますか。roxygenize手動で情報を追加し、後で情報を追加しますか?それでも、これはクラスの手動で生成された.Rdファイルを上書きすることにつながります...

4

1 に答える 1

4

roxygenおよびS4クラスに関する一般情報

roxygenの最初のバージョンには@slotタグがありましたが、そのバージョンはこれ以上維持されていませんroxygen2。したがって、その古いバージョンを使用しないことをお勧めします。

現在のところ、roxygen2S4クラスの実際のサポートはありません。Hadleyはそれを実現するために一生懸命取り組んでいますroxygen3https://github.com/hadley/roxygen3)。試してみて勇気を出したい場合はroxygen3、githubからインストールして、開発バージョンを試してください。このバージョンは最終的にに組み込まれるroxygen2ため、やがて問題は解決することに注意してください。

ワークフローについて:

個人的には、roxygenと手動で作成した.Rdファイルを使用して組み合わせるのは常に悪い考えです。ただし、必要に応じて、引数を使用してroxygenの出力を別のディレクトリに送信できますroxygen.dir。このようにして、手動で書き込んだファイルを上書きすることなく、必要なものをパッケージディレクトリにコピーして戻すことができます。

roxygenise("./mypackage", roxygen.dir="./myroxygendir")

私がすることは、roxygen2リンク先のスレッドで説明されているように、単にクラスのRdファイルを作成するために使用することです。なんらかの理由で信じているように、手動で追加する必要はありません。いつものようにRdブロックを示すためにを使用#'し、リンク先のスレッドで指定されているものを使用します。スロットを別のセクションにしたい場合は、@section次の例のようにタグを使用してそれを行うことができます。

を使用して今のところスロットを追加する方法の例roxygen2

#' The MY class
#'
#' This class blabla yadayada
#'
#'@section Slots:
#'  \describe{
#'    \item{\code{aslot}:}{Object of class \code{"numeric"}, containing 
#'whatever and a bit more}
#'    \item{\code{anotherslot}:}{Object of class \code{"character"}, containing
#' strings.}
#'  }
#'
#' @note Yes, you can add notes
#' @name MY 
#' @rdname MY
#' @aliases MY-class
#' @exportClass MY
#' @author Joris Meys
setClass("MY",
         representation=representation(aslot="numeric",
                                       anotherslot="character"
                                       )
于 2012-11-30T10:39:26.977 に答える