//このページが表示される方は、URLから「action=SOURCE&」を削除してみてください [[R備忘録 - 記事一覧]] !!!rJavaを使ってみる *投稿者: みゅ *カテゴリ: なし *優先度: 普通 *状態: 完了 *日時: 2009年02月04日 10時52分54秒 //{{bugstate}} !!内容 *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を組み合わせることで、クラスター化できないかを、検討中. //!!コメント //{{comment}}