9

私はRに不慣れで、Rコードを書く際の「良い」習慣と見なされるものに関連するオンラインのさまざまなソースからの情報をつなぎ合わせるのに苦労しています。基本的なガイドを読みましたが、間違いなく最新の情報を見つけるのに苦労しています。

  1. よく書かれた/文書化されたS3クラスの例は何ですか?
  2. 対応するS4クラスはどうですか?
  3. .Rクラス/関数にコメントするときにどのような規則を使用しますか?すべてのコメントを.Rdファイルと.Rファイルの両方に入れますか?これらのファイルの同期は面倒ですか?
4

4 に答える 4

7

S3、S4、またはパッケージを使用するかどうかは、主にスタイルの問題です (Dirk が言うように) が、非常によく構造化されたオブジェクトが必要な場合は、それらのいずれかを使用することをお勧めします (他の OOP 言語と同じように)。 )。たとえば、すべての時系列クラスには時系列オブジェクトがあります (例外を除いてすべて S3 であると思います)。これらのオブジェクトの構築と使用に関する特定の動作を強制できるからです。パッケージの作成に関する質問も同様です。コードを頻繁に再利用する場合、またはコードが他の人にとって役立つ場合は、これを行うことをお勧めします。もう少し手間がかかりますが、追加された組織構造で簡単にコストを補うことができます。

S3 と S4 の比較 (R-Help のここここで説明) に関する基本的なガイドラインは、S3 クラスはより「クイック アンド ダーティ」であり、S4 クラスはオブジェクトと型をより厳密に制御することです。Bioconductor で作業している場合、通常は S4 を使用します (たとえば、「S4 クラスとメソッド」を参照)。

以下のいくつかを読むことをお勧めします。

  1. Christophe Genolini による「A (Not So) Short Introduction to S4」
  2. 「プログラマーのニッチ: S3 と S4 の単純なクラス」Thomas Lumley 著
  3. 「Brobdingnag: S4 メソッドを使用した ''hello world'' パッケージ」 by Robin KS Hankin
  4. Douglas Bates による「S4 へのパッケージの変換」
  5. ジョン・チェンバーズによる「S4メソッドの仕組み」

ドキュメンテーションについては、Hadley の提案が的を射ています。Roxygen は作業を楽にし、ドキュメンテーションをコードのすぐ隣に配置します。それはさておき、 Roxygen または man ファイルが必要とする以上のコメントをコードに提供したい場合があります。その場合、他の開発者のためにコードにコメントすることをお勧めします。これらのコメントはパッケージには含まれません。それらはソース コードでのみ表示されます。

于 2009-12-15T14:33:39.343 に答える
5

3.の場合roxygenを使用します-これはjavadocのように機能して、ソースファイルにコメントを取り、Rdファイルをビルドします。

于 2009-12-15T14:23:10.440 に答える
5

これは、6 つ以上の質問が 1 つにまとめられているため、回答が難しくなります。

それでは、徹底的に試してみましょう: まず、RODBC ラッパーの問題を解決してみてください。コード表現はそれ自体を示唆します。単純な関数から始めて、それを中心にパッケージを構築するかもしれません。それはすでにあなたにいくつかのカプセル化を与えます。

残りの多くはスタイルです。いくつかの著名な R コードは S4 を誓っていますが、他のコードはそれについて誓っています。他のパッケージや R 自体のコードをいつでも読むことができます。また、いつでも RODBC ラッパーをさまざまな方法で再実装し、独自のアプローチを比較できます。

編集:更新された、はるかに短縮された質問を反映して:特に使用しているパッケージの中で、CRANからいくつかのパッケージを選択してください。あなたのスタイルに応じて、多かれ少なかれ興味深いものをすぐに見つけることができると思います。

于 2009-12-15T12:36:15.277 に答える
4

内容よりもややスタイルに関連していますが、Google R スタイル ガイドは読む価値があります。

于 2009-12-15T16:19:54.513 に答える