Roxygen2を使用してS4クラススロットを適切に文書化する方法は?



How Properly Document S4 Class Slots Using Roxygen2



解決:

Roxygen2 5.0.1の回答を更新し、6.0.1現在現在

S4の場合、現在のベストプラクティスは、@slotタグ:



# ' code {' character '}クラスを拡張するS4クラスのタイトル。 # '#'このクラスと私の計画についての詳細。 # '#' @ slotmyslot1何かを論理的に追跡します。 # '@ slotmyslot2他のものを指定する整数。 # '@ slotmyslot3いくつかのデータを保持するdata.frame。 # '#' @name mynewclass-class# '@ rdname mynewclass-class#' @export

補足として、@exportClassが必要なのは一部の場合のみで、関数をエクスポートする一般的な方法は@exportnow。また、他のパッケージでクラスを拡張できるようにする場合を除いて、クラスをエクスポートする必要はありません。

http://r-pkgs.had.co.nz/namespace.html#exportsも参照してください。



Roygen2 3.0.0の回答を更新しました。現在、5.0.1の時点です。

S4の場合、ベストプラクティスは次の形式のドキュメントです。

# ' section {Slots} {#'  describe {# ' item { code {a}:} {クラスのオブジェクト code {' numeric '}。}#'  item { code {b}:} {クラスのオブジェクト code {'character'}。}# '}#'}

これは、オブジェクト内のリストとしてのスロットの内部表現と一致しています。ご指摘のとおり、この構文は他の行とは異なり、継承の知識を組み込んだより堅牢なソリューションを将来的に期待する可能性がありますが、現在は存在しません。



@Brian Diggsが指摘しているように、この機能は3.0.0に組み込まれました。詳細については、https://github.com/klutometis/roxygen/pull/85をご覧ください。


Rdファイル自体のスロットを文書化する場合は、FullDecentが提供するソリューションで問題ありません。使用する場合roxygen2、タグを使用できます@sectionは基本的に同じことをします説明。例:

# 'EXAMPLEクラス#'# 'このクラスには例が含まれています。この行は説明に入ります# '#'この行と次の行は詳細に入ります。したがって、この行は詳細にも表示されます。 # '#' @ sectionスロット:# ' describe {#'  item { code {slot1}:} {クラス code {'numeric'}のマトリックス、slot1からのデータを含む}# ' item { code { slot2}:} {クラス code {'character'}のオブジェクト、slot2に入れる必要のあるデータが含まれています。}# '}#'# '@ note引き続きメモを追加できます#' @ name例# '@ rdname例# '@ aliasesEXAMPLE-クラス#' @exportClass例# '@ author Joris Meys 

roxygen2 v4.1 +およびこれを行うためのHadleyの最新のドキュメント:

http://r-pkgs.had.co.nz/man.html#man-classes

RCではまだ試していませんが、S4では動作します。

以前

S4クラススロットはRoxygen2バージョン3.0以降で完全にサポートされているようです。

http://blog.rstudio.org/2013/12/09/roxygen2-3-0-0/

'S4クラス、S4メソッド、およびRCクラスをroxygen2で文書化します–使用した回避策を安全に削除できます@aliasと@usage、そして単にroxygen2に頼って正しいことをしてください。