このページでは,
  R FAQ
  Frequently Asked Questions on R
  Version 1.7-27, 2003-07-16
  ISBN 3-901167-51-X
  Kurt Hornik
(http://cran.r-project.org/doc/FAQ/R-FAQ.html) の第 9, 10章の日本語訳に取り組みます.
(http://cran.r-project.org/doc/FAQ/R-FAQ.html ) の第 9, 10章の日本語訳に取り組みます.

- 担当者: yy
- 修正案の取扱い: みなさまからの修正案は, 下記のコメント欄に書いていただければと思います. 修正そのものは (当面は) 担当者が行います.
- 分担翻訳の取扱い: 期限を区切って, それまでの間は担当者がひととおりの翻訳を行い, その後, 他の方に翻訳の分担をお願いすべきか検討したいと思います (期限: 2003年 8月 31日まで). よろしくお願いします.
- 注意点: そのまま訳すと意味がわかりにくくなりそうな場合, オリジナル (英文) の表現やレイアウト等を変更しています.
- 注意点: 訳注は { } で囲って示します.

#comment
//#comment

----

* R-FAQ 日本語訳全体の目次

- [[R-FAQ日本語訳]] (ルート・ページ)
- [[1. 導入 (Introduction)>R-FAQ日本語訳(1章)]]
- [[2. R の基礎 (R Basics)>R-FAQ日本語訳(2章)]]
- [[3. R と S (R and S)>R-FAQ日本語訳(3章)]]
- [[4. R の Web インターフェイス (R Web Interfaces)>R-FAQ日本語訳(4章)]]
- [[5. R のアドオン・パッケージ (1) (R Add-On Packages)>R-FAQ日本語訳(5.1章)]]
- [[5. R のアドオン・パッケージ (2-6) (R Add-On Packages)>R-FAQ日本語訳(5.2-6章)]]
- [[6. R と Emacs (R and Emacs)>R-FAQ日本語訳(6章)]]
- [[7. R について雑多なこと (R Miscellanea)>R-FAQ日本語訳(7章)]]
- [[8. R のプログラミング (R Programming)>R-FAQ日本語訳(8章)]]
- [[9. R のバグ (R Bugs)>R-FAQ日本語訳(9,10章)]]
- [[10. 謝辞 (Acknowledgments)>R-FAQ日本語訳(9,10章)]]

----

* 9 R のバグ (R Bugs)

- どういうものがバグでしょうか? (What is a bug?)
- バグを報告するには (How to report a bug)

** 9.1 どういうものがバグでしょうか? (What is a bug?)

R が不法命令 (illegal instruction) を実行したり, あるいはプログラムに問題のあることを示すオペレーティング・システム・エラー・メッセージ ("disk full" のようなものではなく) を出して強制終了してしまう場合は, それはきっとバグです. もしも, あなたが自分で (あるいはあなた自身が書いたプログラムの中で) .C(), .Fortran(), .External() あるいは .Call() (あるいは .Internal()) を呼び出すならば, 間違った引数型 (モード) を用いることで, つねに R をクラッシュさせる可能性があります. これはバグではありません.

いつまで経ってもコマンドの実行が終わらない場合はバグの可能性がありますが, それがほんとうに R の欠陥なのかどうか確認する必要があります. コマンドによっては, 単に実行に長い時間がかかっているだけの場合もあります. その入力の処理がすぐに終わるはずだと分かっている場合は, バグを報告してください. そのコマンドが長時間かかるかどうか分からない場合は, マニュアルを見るか, 人に尋ねるかして, 調べてみてください.

あなたがよく知っているコマンドについて, その通常の定義が妥当であるはずの状況で R のエラー・メッセージを引き起こすならば, たぶんバグです. もしも, あるコマンドが間違ったことをするならば, それはバグです. でも, そのコマンドが何をするはずだったのか, 必ず理解しておいてください. もしも, あなたがそのコマンドに詳しくなかったり, そのコマンドがどのように機能するはずなのかよく分からなければ, 実はそのコマンドは正しく機能しているのかもしれません. すぐに結論に飛びつくのではなく, 確実に知っている人にその問題を見せてみてください.

最後に, あるコマンドの意図された定義が, 統計解析にとって最良のものではないかもしれません. これは非常に重要な類いの問題ですが, 判断で決めるべき問題でもあります. また, そのコマンドの既存の特徴のいくつかを知らないために, 安易にこのような {このコマンドの定義が最良ではないという} 結論に達してしまいがちです. あなたが通常の方法で R の文書をチェックし, コマンドの使い方を理解したと確信できて, さらにあなたが望むことが実行できないと確実に分かるまでは, このような問題に文句を言わないことがおそらく最良です. もしも, あなたがマニュアルを注意深く読んだ後でも, そのコマンドが何をするように想定されているのか分からない場合は, マニュアルのバグを暗示しています. マニュアルの役割は, 何もかも明確にさせることですから. 文書のバグを報告することは, プログラムのバグと同様に重要なことです. しかしながら, 入門用の文書はひどく不十分であることが分かっているので, これについては報告する必要はありません.

もしも, ある関数についてオンラインでの引数のリストがマニュアルのものと一致していない場合は, どちらかが間違っているので, バグを報告してください.

** 9.2 バグを報告するには (How to report a bug)

バグがあると判断した場合は, それを報告すること, しかも役に立つ方法で報告することが重要です. もっとも役に立つことは, R を実行するためのシェル・コマンドから始めて, その問題が発生するまでにあなたがタイプしたコマンド群についての正確な記述です. あなたが使っている R のヴァージョン, 計算機, OS についての情報を必ず入れてください. R 上で version とタイプすると, これらの情報が出力されます.

バグを報告する際のもっとも重要な原則は, 仮説やカテゴリー化ではなく, 事実を報告することです. 事実を報告するほうがつねに簡単なのですが, 人々は無理やり説明を加えることを好むようです. もしもその説明が, R の実装の仕方についての推測に基づいているのならば, それらは役に立たないでしょう. というのは, 他の人たちにとっては, そのような推測を導くには事実がどうなっていなければならなかったのか解明する必要が生じるからです. ときに, そのような解明が不可能な場合もあります. いずれにせよ, その問題を修正しようとしている人たちにとってはこれは不必要な作業です.

たとえば, あなたはデータ data が非常に大きいことを知っていて, その data について, コマンド
  R> data.frame(x, y, z, monday, tuesday)
がいつまで経っても終わらないものとしましょう. その場合, data.frame() が大きいデータセットについて失敗すると報告しないでください. もしかすると, 変数名が曜日になっている場合に失敗するのかもしれないのです. もしそうだとしたら, あなたの報告を受けて他の人たちは大きいデータセットで data.frame() コマンドを試してみるけれども, おそらく曜日の変数名を使ってみる人はいないから, 何も問題を見つけられないでしょう. 曜日の変数名を試してみるべきだと他の人々が推測できる方法は世界中のどこにもありません.

あるいはもしかすると, このコマンドが失敗したのは, あなたが最後に {直前に} 使ったコマンドが "["() についてのメソッドだった所為かもしれません. これには, R の内部的データ構造を破壊し, それ以降の data.frame() コマンドを失敗させるというバグがあります. これが, あなたがそれまでにタイプした (あるいは, 起動ファイルから読み込んだ) コマンド群を, 他の人たちが知る必要があるという理由です.

明らかに同じバグを引き起こす単純な実行例を見つけ出してみることが非常に有用です. また, 同じバグを引き起こすかに思われたのに実際にはバグを引き起こさない単純な実行例を見つけ出すことも多少なりとも有用です. もしも, あなたがその問題をデバッグしたいと思い, 何が問題を引き起こしたのか見つけたのならば, それはすばらしいことです. それでもなお, 説明や解決方法と同様に事実を報告すべきです. 報告には, その問題を再現する実行例, できれば, あなたが見つけた中でいちばん単純なもの, を含めてください.

R を --vanilla オプション付きで起動すると, バグを分離するのに役立ちます. このオプションは, そのサイトのプロファイルや保存されたデータ・ファイルを読み込まないことを保証します.

Unix システム上では, 関数 bug.report() を用いてバグの報告を生成することができます. この関数は自動的にヴァージョン情報を含めて, バグ情報を正確なアドレスに送付します. 代わりの方法として, バグの報告を r-bugs@r-project.org 宛に email したり, あるいは http://bugs.r-project.org/ の Web ページに投稿することが可能です.

寄贈されたパッケージについてのバグは, おそらく, r-bugs よりもそのパッケージの管理者に送付されるべきでしょう.

----

* 10 謝辞 (Acknowledgments)

もちろん, R システムに関して Robert と Ross に心から感謝します. そして, パッケージの作者および移植者に, R システムに追加してくれたことを感謝します.

Doug Bates, Peter Dalgaard, Paul Gilbert, Stefano Iacus, Fritz Leisch, Jim Lindsey, Thomas Lumley, Martin Maechler, Brian D. Ripley, Anthony Rossini, および Andreas Weingessel には, この FAQ の改良に役立つコメントをいただき, とくに感謝します.

More to some soon...

----

{ 9章, 10章おわり }

最終更新日: 2003-08-11 (月) 21:41:54

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS