トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

BugTrack-R備忘録/23

R備忘録 /状態空間モデリング/donlp2/その他のメモ

R備忘録 - 記事一覧

rJavaを使ってみる

  • 投稿者: みゅ
  • カテゴリ: なし
  • 優先度: 普通
  • 状態: 完了
  • 日時: 2009年02月04日 10時52分54秒

内容

  • rJavaのサイト http://www.rforge.net/rJava/
  • Rはjavaとか使えるように、pathとか通ってないとだめらしい.Gentoo Linuxで動かしてみる.
  • Gentooの場合、Rがportageにあるので、USEフラグとかに「java」とか書いていると、Rをインストールするまでに、javaとかをインストールしてくれる.
# emerge -pv R

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] dev-lang/R-2.7.2  USE="X cairo java jpeg lapack nls png readline
tk -bash-completion -debug -doc -minimal" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB
  • portageのRは上のようにバージョンが古いので、JavaとかXとかの必要なライブラリをインストールするためだけに、「emerge -v R」する.
  • で、必要なライブラリとかがこれでインストールされるので、最新のRをインストールするために「emerge -C R」でこのバージョンのRをアンインストールする.
  • で最新(現時点ではR version 2.8.1 (2008-12-22))のRをインストールする.emergeではなく、手動で.

rJavaのインストール

install.packages("rJava")

rJavaのサイトにある、サンプルのテスト

> library(rJava)
> .jinit() # this starts the JVM
> s <- .jnew("java/lang/String", "Hello World!")
> s
[1] "Java-Object{Hello World!}"
> .jcall(s,"I","length")
[1] 12
> .jcall(s,"I","indexOf","World")
[1] 6
> .jmethods(s,"concat")
[1] "public java.lang.String java.lang.String.concat(java.lang.String)"
> .jcall(s,"Ljava/lang/String;","concat",s)
[1] "Hello World!Hello World!"
> print(s)
[1] "Java-Object{Hello World!}"
> .jstrVal(s)
[1] "Hello World!"
  • なんと、あっさり動いた!

何に使うか

  • Rの並列化を構築中なのですが、pvmとか、mpiとかインストールがめんどくさいし、インストールはうまくいかないし.
  • RserveはJAVAのクライアントからも使えている.
  • Javaだとスレッドも使える.
  • なので、rJavaとRserveとmulticoreを組み合わせることで、クラスター化できないかを、検討中.