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」も見て下さい。
投稿に関する技術的な詳細: 以下に関するより詳細は一般的な指示を見て下さい。
不可思議な挙動とバグ: あなたがバグと考えるものは、単にあなたには気に入らない既定動作、一つの特徴、ドキュメント化されていない特徴、ドキュメントのバグ、等色々な他の可能性があります。あなたが質問をするために、これらのどれに該当するか詮議する必要はありません。もしそれが本当のバグなら、誰かがそれを注意するでしょう。真のバグを報告する前に、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 を再生する表現を出力します。
その他のソース: 投稿前に必ずしも参照する必要はないが、かなり一般的な質問であり、ドキュメントのトピックが直接の関連を示唆している場合は例外かも知れない。回答は単に次のどれかを指示するに留まるかもしれない。
他人の投稿への反応について:
よく見られる不適切な投稿について:
最後に: 良い質問をするのも能力の一つです.初めから役立つ解答が得られなかったとしても,がっかりするものではありません.簡潔で技術的に正確な解答とはそんなもので,意図的に厳しい言葉を投げているのではありません.自分の投稿への解答で侮辱されたと感じても,早まって返信を書かないように - きっと後で後悔します.エリック・レイモンド氏のエッセイ「How To Ask Questions The Smart Way(賢く質問をする方法)」を読めば,さらに得るものもあり,技術系メーリングリストの参加者の態度について理解が得られるでしょう(ただ,catb.org の人たちに R について質問しないように).
Compiled by Tony Plate (tplate at acm dot org), Dec 2003