roxygenおよびS4クラスに関する一般情報
roxygenの最初のバージョンには@slot
タグがありましたが、そのバージョンはこれ以上維持されていませんroxygen2
。したがって、その古いバージョンを使用しないことをお勧めします。
現在のところ、roxygen2
S4クラスの実際のサポートはありません。Hadleyはそれを実現するために一生懸命取り組んでいますroxygen3
(https://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"
)