A piece of cake

Research, hobby, and life

独学R修行中:ggplot2導入

Rは良い文明

修士課程の時から、ずっとR languageを利用しています。プログラミングをやってみたかったんですが、周りにはC++を扱い、ちょっとこう、聞きづらいような感じの人しかいませんで、環境は最悪でした。ちょっと教えてもらったけど、C++って難しい言語ですよね???とりつきにくいというか。私にとっては、塾などがいるとおもいました。

たくさんのデータがある統計分析をしなければならなかったので、自然と統計分析に強いRを使い始めることに。Rを知ったきっかけはネットと学校の有志セミナーでした。

オブジェクト指向だからか、エクセルからの私にはわかりやすかったのです。修士課程の2年間では、 基本的な統計分析と繰り返し構文くらいまででき、グラフが思ったようにかけるようになりました。 それだけでも当時はずいぶん助かりました。 *1

博士課程から感じていた限界

まず、モンテカルロシミュレーションや確率分布によるシミュレーションをやり始めたこと。これがこれまでとの大きな違いです。 シミュレーションは繰り返しが命なので、データ数が膨れ上がります。 それをきれいに処理していくには、Rらしい関数といわれているapply系の関数や、自作関数*2の実装が必要になりました。 ggplot系は眺めるだけで、R-tipsさん

http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html

にほとんどお世話になってきました。ただどうしてももうplot系関数だと煩雑になってきてしまって。特にグレースケール縛りのある論文の図表は、紙面制約、色の制約、見え方の制約があり、マージンの設定から文字の大きさ、数種類の図を1枚のカンバスにおさめたりするのに一苦労しました。可読性が落ちるため、数回の手直しを経て、時間が空いて査読から帰ってきたら、もはや何をしているかわからず、自分が書いたものを1から理解しなおす工程がマジでだるかったのです。*3

ggplot2は図を重ねたりするのも楽、コードのつくりがレゴのようにつみかさなるようなイメージで可読性が高いようです。 求めていたものですね!

さっそくつまった

irisデータの参考がたくさんあるのですが、irisデータは二項間関係を見るデータです。 グラフの行列データが示されています。一方、 私の試行回数と乱数の組合せというデータは、試行回数が行番号で示されているので、行データがないわけです。

乱数の収束具合を見る、ただの散布図プロットなのですが、行番号を導入しないと示されないようで、最初から毛躓きました。あとデータフレームじゃないと使えないってところは、ただの散布図ならばplot系でもいいかもしれませんね。

プログラミング(のはしくれ)は楽しいけど、疲れる

背中と腰が痛くてたまりません。マッサージに行きたいです・・・;;

この分析を次の学会に出す予定で、その締切が2月15日なので割とせっぱつまってます。 まだデータの可視化ができていなくて、何がわかっているのかよくわかっていないのです。

なにを取り出していいのかも、ちょっとよくわかっていなかったり。う~ん・・・。

*1:そのあと、Pythonも知りましたが、すでにRのベクトルや行列での処理に慣れてしまっていて、まだ手を付けていません。別のところでPythonは使うと思うので、これからやりたいと思っています。

*2:処理速度が速いと聞いています

*3:なので、R Markdownによる自分のための手順レポート自動作成も同時導入しようと試みています、http://gihyo.jp/admin/serial/01/r-markdown がとても参考になりそうです