ESSを使おう

ESSを使おう

R自体は素晴しい言語

  • みんながしゃべってくれた通り

多少は考慮されている

  • ヒストリが使えるようになっていたりとか
  • 「スクリプトファイルを編集」にすると
    • リージョン選択してC-rで実行されたりとか
  • MacのR GUIだと関数やオブジェクトの補完をやってくれる
    • これはまあまあよい

でも

  • R GUIはお世辞でも使いやすいとは言えない

R GUIでいいのは小学生まで!!

  • これからはESSを使いましょう

ESS?

  • Emacs Speaks Statistics
  • EmacsでRプログラムを編集&実行
  • Windows Userはmeadowで
  • Carbon Emacs Userはディフォルトで
  • net-installとかでいけるはず
    • meadowの人はload-pathに追加して

スクリーンショット

http://gyazo.com/8919f03e1e69e514335cfd84a39c2e99.png

画面分割

Rプログラムの編集
右上
ヘルプを引く
右下
プログラムが実行されているコンソール

ディフォルトではこうなっていない

  • .emacsに設定を書きましょう

参考

(defun ess:format-window-1 ()
  (split-window-horizontally)
  (other-window 1)
  (split-window)
  (other-window 1))
(add-hook 'ess-pre-run-hook 'ess:format-window-1)

何がいいのか

  • Rのcolor syntax
    • R-mode

一番強力だと思うもの

  • オレオレ基準
  • Eval line & step
  • C-c C-n

まあ、これだとR GUIのC-rとあんまり変わらない

  • けど、もちろんそれだけじゃない

C-c C-r

  • リージョンを選択、実行

C-c C-v

  • かなり強力
  • オブジェクトのhelpが引ける
    • 関数もオブジェクト
  • ?hogeやっていいのは小学(ry

helpの機能はかなりすごい

  • nで次のセクションへ
  • lはexampleを一行づつ実行してくれる
    • もちろんC-c C-rとかも行ける

ファイルに書くまでもないプログラム

  • C-c C-t
  • 実験に便利

実行すると同時にR consoleに飛ぶこともできる

  • example
    • C-c M-n

話変わって

  • 高度に発達したRはlispと見わけがつかない

まあ、そんなでもないけど

(function(n){ifelse(n>1,Recall(n-1)+Recall(n-2),ifelse(n==1,1,0))})(1:10)

lispの移動が使える

  • C-M-n
  • C-M-d
  • C-M-f
  • etc

かっこの追加が面倒になってくる

まとめ

  • RのGUIはしょぼいと気づいて!
  • ESSを使うといいよ
  • まだまだ機能はたくさんあるから、続きはinfoで!!