Emacs org-modeを使ってみる: (40) org-babel-Rを使う1/2

このエントリーをはてなブックマークに追加

今回は,統計ソフトRをorgファイルの中から利用する org-babel-Rの使い方を説明する(一回目).
なおUbuntu 8.04 LTSとEmacs22上で, org-6.34c (2010年1月10日リリース)の利用を前提にしている.

インストール

Rがインストールされているいなければまず以下のようにしてインストールする.

  $ sudo apt-get install r-recommended

また org-6.34c.zip を展開した時にできた org-6.34c/contrib/lisp/ ディレクトリ中の org-babel-init.el および org-6.34c/contrib/babel/lisp/ ディレクトリ以下のファイルを必要とするので,以下のように設定する(load-path の設定は,適切に変更すること).

  (add-to-list 'load-path "/usr/local/src/org-6.34c/contrib/lisp")
  (require 'org-babel-init)
  (require 'org-babel-R)
  (org-babel-load-library-of-babel)

値の埋め込み

以下の例では, 1から10の値からなるベクトル x を定義し,各値の sqrt の平均値を求めている.

#+BEGIN_SRC R
  x <- 1:10
  mean(sqrt(x))
#+END_SRC

#+results:
: 2.24682781862041

表の埋め込み

以下の例では, 1から5の値からなるベクトル x を定義し,ベクトル x と,sqrt(x) を横に並べた行列を求めている.

#+BEGIN_SRC R
  x <- 1:5
  cbind(x, sqrt(x))
#+END_SRC

#+results:
| 1 |                1 |
| 2 |  1.4142135623731 |
| 3 | 1.73205080756888 |
| 4 |                2 |
| 5 | 2.23606797749979 |

以下の例は,上記の例と同様だが,一行目に "x" と "sqrt(x)" を加えている.

#+BEGIN_SRC R
  x <- 1:5
  cbind(c("x", x), c("sqrt(x)", sqrt(x)))
#+END_SRC

#+results:
| x |          sqrt(x) |
| 1 |                1 |
| 2 |  1.4142135623731 |
| 3 | 1.73205080756888 |
| 4 |                2 |
| 5 | 2.23606797749979 |