6

参照クラスのメンバー関数の使用を文書化するにはどうすればよいですか?

Rdブロックでファイルを書き込む場合、どうすれば\usageブロックを回避できますかWARNING

Functions/methods with usage in documentation object 'XmlDoc' but not in code:
  $ new

\usageブロックを使用すると、次のようなものを書くことができると思います。

obj <- ClassName$new(par1, par2, ...)
obj$method1(oth1, ...)

\arguments次に、ブロック内のパラメーターを文書化します。

私がこれを行うR CMD checkと、

Assignments in \usage in documentation object 'ClassName':

メソッドをドキュメントが必要なコードオブジェクトとして認識しません。

今のところ、ブロックRdなしでファイルを\usage書き、ブロックに上記のコードを書いています\examplesが、引数を文書化する場所がなく、この方法でcheckは実際にチェックすることはほとんどありません. 私はこれに満足していないので、現在の一般的な慣行についてコミュニティに尋ねています。

4

2 に答える 2

5

それが正しい方法かどうかはわかりませんが、私が行ったことはMethodsセクションを作成し、メソッドのドキュメントを内部のdescribeに配置することです。

于 2011-07-20T15:37:08.283 に答える
5

私の理解が正しければ、参照クラスのメソッドS4 メソッドであるため、S4 クラスとメソッドの文書化が適用されます。

この回答をもう少し自己完結型にするために、パッケージLogger内のクラスの場合に私が行っていることを次に示します。logging.oo

これは私が文書化したかったコードですが、省略されています [...]。

Logger <- setRefClass("Logger",
                      fields=list(name = "character"),
                      methods=list(
                        setLevel = function(newLevel) { [...] },
                        getLevel = function() { [...] },
                        addHandler = function(...) { [...] },

これは、.Rd ファイルの対応するコンテンツです。

\alias{\S4method{new}{Logger}}
\alias{\S4method{setLevel}{Logger}}
\alias{\S4method{getLevel}{Logger}}
\alias{\S4method{addHandler}{Logger}}
[...]
\usage{
\S4method{new}{Logger}(name)
\S4method{setLevel}{Logger}(newLevel)
\S4method{getLevel}{Logger}()
\S4method{addHandler}{Logger}(...)

NAMESPACE ファイルでは、Logger クラスをエクスポートしていることを示しているだけですが、そのメソッドは指定していません。すべてが自動的にエクスポートされます。

于 2011-07-22T07:13:55.827 に答える