R のメイリングリストへの投稿記事のガイド (2004.2.2現在)

以下はR のメイリングリストへの投稿記事のガイド (Posting Guide: How to ask good questions that prompt useful answers) の翻訳です。R に関する疑問の最終のソースは R の開発者自身や、全世界の熱狂的 R ユーザーによる解答が直ちに得られる r-help です。基本的に善意の回答者の集まりですから、遠慮せず質問すれば良い(意味がわかり、無礼な表現にならないことを気をつければ)わけですが、以下のような投稿記事ガイドラインが公表されていますので、参考にして下さい。これはまた RjpWiki (とくに Q & A コーナー)への投稿にも参考になると思います。

記事投稿ガイド: 有益な回答を素早く得るためにどのように良い質問をするか

このガイドはあなたが R のメイリングリストから最大の情報を得、そして混乱を避けるることを手助けすることを目指しています。リストでの多くの返事と同様、簡潔に書かれています。これは無礼を目指しているわけではなく、社会的な礼儀よりは、技術的な問題へ限られた時間とスペースを割くことから来る帰結です。

リスト: R はフリーソフトウェアであり、ボランティアにより作成され、保守されていることを思い出して下さい。かれらは、ソフトウェアに貢献し、メイリングリストに参加する、様々な理由を持っていますが、しばしば限られた時間的余裕しか持ちません。

良い作法: 様々な流儀があることを忘れないで下さい。非常に端的な物言いをする人がいます。言いたいことに、弁解と回りくどい表現をたくさん加える人もいます。寛容さが必要です。不躾けさは不適当ですが、「マニュアルを読みなさい」が適切な回答であることもあります。そうした点をリスト上で議論することで時間を無駄にしないようにしましょう。人身攻撃的なコメントは全く心得違いです。

統計学に関する質問: R のメイリングリストは主に R というソフトウェアに関する質疑と議論を主目的にしています。しかしながら、統計的方法に関する質問が時々投稿されます。もし質問が適切にされ、リストを見ている誰かが興味を持てば、役にたつ最新の情報を引き出せるかも知れません。Usenet の sci.stat.consult (応用統計学と統計相談) と sci.stat.math (数理統計学と確率論) も見て下さい。

基本的統計学と学校の宿題: R-help はこれらには不向きです。

投稿前に勉強をする: もしあなたが基礎的なことがらを既に調べたことがはっきりしていれば、役にたつ回答を得る可能性がはるかにたかまります。このページの後にある「Further Resources」も見て下さい。

  • 色んなキーワードで検索 help.search("keyword") を行なう(これを R のプロンプトで実行する)
  • 関連関数のオンラインヘルプを読む(?functionname, 例えば ?prod を R のプロンプトで実行する)
  • R-faq や R-windows-faq (http://cran.r-project.org/faqs.html) で関連記事を探す。
  • 最低でも「An Introduction to R」の関連項目を見る。
  • もし関数がある本のコンパニオンパッケージ、例えば MASS パッケージ、にあるものならば、投稿前にその本を調べる。

投稿に関する技術的な詳細: 以下に関するより詳細は一般的な指示を見て下さい。

  • HTML 形式で投稿しない(スパムかどうか判定しにくい)
  • PS, PDF, そしてある種の画像やアーカイブを除き、バイナリファイルを添付しない。(それ以外は、有害なソフトウェアを含む可能性があるため、自動的に削除されます。)
  • 内容がわかるサブジェクト欄を使う(`question' といったものは駄目)。
  • 新しいサブジェクトに対しては、新しいメッセージを作文し、アドレス 'r-help@stat.math.ethz.ch' をはっきりさせる。(既存の投稿記事に返答し、さらにサブジェクトを変更するのは、アーカイブや多くの人のメイルソフトのスレッド表示を混乱させるでしょう。)

不可思議な挙動とバグ: あなたがバグと考えるものは、単にあなたには気に入らない既定動作、一つの特徴、ドキュメント化されていない特徴、ドキュメントのバグ、等色々な他の可能性があります。あなたが質問をするために、これらのどれに該当するか詮議する必要はありません。もしそれが本当のバグなら、誰かがそれを注意するでしょう。真のバグを報告する前に、R-faq 中の R Bugs の項を読むべきです。もしあなたがあることが完全にバグであると確信をもてないならば、r-help に質問を投稿すべきで、r-bugs に投稿すべきではありません。なぜなら、そうしたバグ報告はすべて R-core メンバーの誰かの手を煩わすことになるからです。また、Simon Tatham のよる、効果的なバグ報告に関するエッセイを見て下さい。

予期しない挙動やバグの可能性に関する質問には、あなたのプラットフォーム(Windows2000, Linux, OS X)や R のバージョン(R プロンプトに version と入力すればわかる)を添えて下さい。単に「1.8」ではなく「1.8.1」のような完全なバージョン番号を書いて下さい。あらかじめコンパイルされた R のバイナリをインストールしたか、自分でコンパイルしたかを述べて下さい。もしその関数が「base パッケージ」以外のパッケージ中にあるならば library(help=thatPackage) でえられるパッケージのヘッダーを含めて下さい。もしあなたが R の古いバージョンを使っており、それが適切に動作しないならば、バージョンアップすること。

R とともに配布される標準的パッケージ(FAQ の R のアドオンパッケージの項を参照)に関する質問は R-help でどうぞ。もし質問が CRAN からダウンロードされたパッケージに関するものなら、最初にパッケージの保守管理者に連絡を取ってください。この情報を得るには、find("functionname") や package.description("packagename") を使えます。

「R がクラッシュした」と言わないでください。おそらく R がエラーを表示し、あなたのコードの一部を終了したという意味なのでしょうが、多くの人は R プログラムの異常終了と言う意味に解釈するでしょう。受けとったエラーメッセージを添え、起こったことを正確に述べてください。

例: 誰かが実際に実行できる小さな例を提供することはしばしば役に立ちます。例えば

次のような行列x があるとします。
> x <- matrix(1:8, nrow=4, ncol=2, dimnames=list(c("A","B","C","D"), c("x","y")) 
> x 
  x y 
A 1 5 
B 2 6 
C 3 7 
D 4 8 
>  
どうすればこれを 8 個の行を持ち、三つの列名が `row', `col' そして `value' を持ち、
そして `row' と `col' の値として次のような次元名を持つデータフレームに変換できる
でしょう? 
> x.df 
row col value 1 A x 1 ... 

これに対する答えは例えば次のようになるでしょう。

> x.df <- reshape(data.frame(row=rownames(x), x), direction="long",
                  varying=list(colnames(x)), times=colnames(x),
                  v.names="value", timevar="col", idvar="row") ) 

例を添える場合は、上の matrix() 表現のような、データを生成する R 命令を与えるのがベストです。もっと複雑なデータ構造に対しては、dump("x", file=stdout()) がオブジェクト x を再生する表現を出力します。

その他のソース: 投稿前に必ずしも参照する必要はないが、かなり一般的な質問であり、ドキュメントのトピックが直接の関連を示唆している場合は例外かも知れない。回答は単に次のどれかを指示するに留まるかもしれない。

  • Writing R Extensions はパッケージ、C と C++ とのインタフェイス、R のヘルプファイルをカバーしている。
  • R Data Import/Export は他の書式のファイルのからの読み込み、書き込みをカバーしている。
  • R Language Definition (別名 `R Language Manual') は R 言語、データオブジェクト等を説明している。
  • R Newsletter Vol 3 No 1 中の Uwe Ligges の論文 `R Help Desk' は R に関する情報をどこで得るかに関する役に立つチップスを含んでいる。
  • 次の二つの書籍はしばしば質問への回答で引用される:Venables & Ripley, 2002, Modern Applied Statistics with S (4th ed) ("MASS") と Pinhero & Bates, 2000 (特に lme に関して)。もしこれらの本が入手できるなら、それを見よう。もし不可能なら、質問中にそう述べるべきである。R に関連するさらなる書籍が文献中にリストされている。
  • 貢献ドキュメントの頁は有益な紹介とオンラインで得られる他の紹介をリストしている。
  • R-help メイリングリストのアーカイブ (http://www.r-project.org/mail.html にある `Archives and Search Facilities' を見よ)
  • Paul Johnson's R tips 頁は R ならどうするかについての組織化されたコレクションであり、R-help から抜粋された多くの質問とチップスを含む。
  • Google による一般的、もしくは r-project サイトに限った検索 (検索キーワードの先頭に `site:r-project.org' を付ける)

他人の投稿への反応について:

  • 一般的に言って,投稿者でなくメーリングリストに返事を書くつもりでいて下さい.そうすれば投稿は文書としての価値を持つでしょう.
  • 礼儀を忘れた投稿は受け付けられません.簡潔なのはOK.
  • 非常に単純な質問への解答には,以下のアルゴリズムを利用のこと
    • 1. 返信を書き上げる
    • 2. R のプロンプトに 4*runif(1) を打ち込み,結果×1時間だけ待つ
    • 3. メーリングリストへの新規投稿をチェックする.自分のと似た投稿がまだないなら,実際に投稿する(これは半分は冗談ですが,言いたいことがすぐに伝わった方はこれに従うのがいいでしょう! また,4の代わりにRまたはS-plusの経験年数を使うのもよい考えです)

よく見られる不適切な投稿について:

  • メールのタイトルが欠けていたり,具体的でない
  • 質問をする前に最低限考えるのを怠けている
  • 「関数○○が動かないんですが」以上の情報を伝えていない
  • 細部に無駄にこだわる割には何をしたいのか伝えていない
  • 予期しない動作を報告するときヴァージョンとOSを知らせない
  • 最新のRではすでに修正済みの古いバグを報告している
  • ソフトウェアは設計および仕様通りに動作しているのに,「こう動くはず」という思い込みからバグだと主張する
  • 基本的な関数の動作が常識外れだと主張する(設計が変だと思ったら,どうしてそのように設計されたのか尋ねる方が,生産的だし礼儀にも適っている - もちろん関連する文書を読んだ後に,ですよ)
  • 「答えてもらえないようではもうRを使う気になれません」などと迫る.本当にそう思ったとしても,この言い方では手を差し伸べる人は少ないでしょう.

最後に: 良い質問をするのも能力の一つです.初めから役立つ解答が得られなかったとしても,がっかりするものではありません.簡潔で技術的に正確な解答とはそんなもので,意図的に厳しい言葉を投げているのではありません.自分の投稿への解答で侮辱されたと感じても,早まって返信を書かないように - きっと後で後悔します.エリック・レイモンド氏のエッセイ「How To Ask Questions The Smart Way(賢く質問をする方法)」を読めば,さらに得るものもあり,技術系メーリングリストの参加者の態度について理解が得られるでしょう(ただ,catb.org の人たちに R について質問しないように).

Compiled by Tony Plate (tplate at acm dot org), Dec 2003


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Google
WWW を検索 OKADAJP.ORG を検索
Last-modified: 2015-03-01 (日) 01:15:59 (1667d)