質問

roxygen(2)を使用してクラスを文書化する場合、タイトルと説明/詳細を指定することは、関数、メソッド、データなどの場合と同じように見えます。ただし、スロットと継承は独自の種類の動物です。 roxygen2のS4クラスを文書化するためのベストプラクティス(現在または計画中)は何ですか?

デューデリジェンス:

roxygenの初期の説明で@slotタグについての言及を見つけました。 2008R-forgeメーリングリストの投稿 これが死んでいることを示しているようです、 そして、roxygenの@slotのサポートはありません:

これはroxygen2にも当てはまりますか?前述の投稿は、ユーザーが代わりにLaTeXマークアップを使用して独自の項目別リストを作成する必要があることを示唆しています。例えば。 "character"クラスを拡張する新しいS4クラスは、次のようにコーディングおよび文書化されます。 ジェネラコディセタグプレ

ただし、これは機能しますが、スロットを文書化するためのこの\describe\itemアプローチは、@で区切られたタグがなく、roxygenize()からの異議なしにスロットが文書化されない可能性があるという点で、残りのroxygen(2)と矛盾しているようです。また、定義されているクラスの継承を文書化する一貫した方法についても何も述べていません。 @importタグを使用すると、依存関係は一般的に正常に機能すると思います(特定のスロットに別のパッケージの非基本クラスが必要な場合)。

要約すると、roxygen(2)スロットの現在のベストプラクティスは何ですか?

現時点で検討すべきオプションは3つあるようです。

役に立ちましたか?

解決 3

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に依存して正しいことを行うことができます。」

他のヒント

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

S4の場合、現在のベストプラクティスは、@slotタグを使用して文書化することです。 ジェネラコディセタグプレ

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

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

Roygen2 3.0.0の回答を更新し、5.0.1現在。

S4の場合、ベストプラクティスは次の形式のドキュメントです。 ジェネラコディセタグプレ

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

@Brian Diggsが指摘しているように、この機能は3.0.0に組み込まれ、でさらに議論されています。 https://github.com/klutometis/roxygen/pull/85

Rdファイル自体のスロットを文書化する場合は、FullDecentが提供するソリューションで問題ありません。roxygen2を使用する場合、タグ@sectionを使用して、\describeと基本的に同じことを行うことができます。例: ジェネラコディセタグプレ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top