2015年5月27日水曜日

覚え書―よくあるバグか、Rstudioとknitr

統計ソフト<R>は、統計分析ツールという域を超えて、レポート作成機能もまた飛躍的に強化されている。

小生もデータを変えながら、あるいはサンプルを取り直しながら、再分析・再レポーティングのループを繰り返すことが多い。

そんな場合は、Rstudioで ― 別にRstudioが不可欠ではないが ― Rmdファイル形式に沿って流行の「文芸的プログラミング」をやっている。エディターで編集しておき、出来たらKnit HTMLボタンを何度もクリックすることで共有可能なHTMLファイルが自動で作成できるのは大変便利である。レポート中の数字を修正する手間がなく、グラフのコピペ漏れがなくなる。

× × ×

これまでは読み込むファイルの絶対パスをRmdファイルに明記するのが面倒なため、file.choose関数でファイル選択画面を出していた。

とはいえ、同一ファイルで何度も作業する時にはかえって面倒である。それで、絶対パスを書き入れて、さらにmean関数の中に"na.rm=T"などを適当に挿入してからknitしようとすると、これが動かないのだな。

最初は、パスの中の"\"を"/"に修正したりした。ところが、ある段階でggplot2のグラフ描画で一歩も先に進まなくなった。どうやらrcpp.recorderだったかな、handlerがないと……、同じメッセージがずっと出る。

『ないわけないだろが!』と言っても聞く奴じゃあない

昨日までは文句を言わずにやってくれていたんだがなあ……、こういうことは久しぶりではあるが、多いものだ。こうなると、少々、Googleで調べてみてもらちが明かぬ。

・・・rcppやら、knitrやら、rmarkdownやら、パッケージをアップデートしてみたが、それでもあかん。

最後に、Rを3.1.3から3.2.0にアップデートして、パッケージの総入れ替えをした。そして、最初から同じ作業をやり直してみると、今度はスムーズに完了してHTML文書が出来た次第。コマンド画面、Rstudioいずれでやっても大丈夫だ。

一体、どこに原因があったのだろう。

分からないことは、この世の中に色々とあるものだが、今回の問題発生と解決への道筋が分からぬ。どこぞに不具合の原因があったことは間違いないが、何が解決されたかは分からぬ。案外、単なるバグだったかもしれない。

当面の結論: ある時点で、原因追及に時間を割くのをやめて、システムをそっくり入れ替えてしまうと、うまく行くこともある。

0 件のコメント: