「RSRubyReferenceManualChapter2」の編集履歴(バックアップ)一覧はこちら
「RSRubyReferenceManualChapter2」(2008/06/17 (火) 03:44:01) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
第2章
インストールと使い方
2.1 要求
第一に RSRuby をインストールする前に Ruby (http://www.ruby-lang.org/) が必要です。
RSRuby の現在のバージョンでは Ruby 1.8.4 だけでテストされていますが、1.8.x 系以前のバージョンでは動くでしょう。
また、動作確認済みの R 実行環境のも必要です。 R を --enable-R-shlib オプション付きでビルドすることで RSRuby は R の共有ライブラリとインタフェースを取れるようになります。
RSRuby の現在のバージョンでは R 2.2.1 だけでテストされていますが、以前のバージョンでも動くでしょう。
2.2 インストール
インストールするには R と標準 ruby 拡張インストーラ setup.rb や rubugems を使って適切な構成でセットアップしていなくてはいけません。
1. まずは、R_HOME 環境変数が設定されていることを確認してください。私の Ubuntu linux ではこうなっています:
R_HOME=/usr/lib/R
また OS X ではこうです:
R_HOME=/Library/Frameworks/R.framework/Resources
2. Compile and install the Ruby ライブラリの setup.rb を使ってコンパイルとインストールをする場合はこうです。
libR 共有ライブラリ付きで R がインストールされている必要があります。 これは通常 R_HOME と同じになるでしょう.
cd rsruby
ruby setup.rb config -- --with-R-dir=/usr/lib/R
ruby setup.rb setup
sudo ruby setup.rb install
もし、rubygems を利用するなら R のインストールディレクトリを指定する必要があります。
gem install -- --with-R-dir=/usr/lib/R
もし RSRuby がコンパイルされないなら R ライブラリの設定パスが必要かもしれません。
以下のことがそろっている必要があります。( RPy のドキュメントから持ってきました):
* R_HOME/bin/libR.so のリンクを /usr/local/lib か /usr/lib に作成すること、ldconfig を実行すること。
* または、.bashrc (か環境変数)に以下を追加すること:
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:R_HOME/bin
* または、 /etc/ld.so.conf に次の行を追加すること
R_HOME/bin
そして、 ldconfig を実行すること。
3. 確認:
ruby setup.rb test
RSRuby はすべてのテストにパスしないといけない。
インストール時に setup.rb に適切なディレクトリ(home ディレクトリのような)を指定していれば root 権限が無くても実行できます。
ruby setup.rb --help
を実行すれば、詳細がわかります。
2.3 Getting Started: A Small Example
RSRuby works ?ne with irb. A sample session is shown:
\$irb -rrsruby
irb> r = RSRuby.instance
=> #<RSRuby:0xb7cdec04>
require-ing rsruby loads the module, but unlike RPy it does not start the R in-
terpreter. Calling RSRuby.instance starts the R interpreter, a reference to which is
returned and stored in object r here. Since only one R interpreter can be running at
a time, RSRuby uses the standard library Singleton module. This replaces RSRuby.new
with RSRuby.instance. further calls to RSRuby.instance return the original interpreter
object.
Calls to R functions are made via the R interpreter object. In the example below the
R function wilcox.test is called with two Ruby Arrays as arguments. These Arrays are
converted to R by RSRuby. The list returned from the R method is converted to a Ruby
Hash. Details of the conversion procedure can be found in Chapter 4.
irb> r.wilcox_test([1,2,3],[4,5,6])
=> {"p.value"=>0.1, "null.value"=>{"mu"=>0.0},
"data.name"=>"c(1, 2, 3) and c(4, 5, 6)",
"method"=>"Wilcoxon rank sum test",
"alternative"=>"two.sided", "parameter"=>nil,
"statistic"=>{"W"=>0.0}}
第2章
インストールと使い方
2.1 要求
第一に RSRuby をインストールする前に Ruby (http://www.ruby-lang.org/) が必要です。
RSRuby の現在のバージョンでは Ruby 1.8.4 だけでテストされていますが、1.8.x 系以前のバージョンでは動くでしょう。
また、動作確認済みの R 実行環境のも必要です。 R を --enable-R-shlib オプション付きでビルドすることで RSRuby は R の共有ライブラリとインタフェースを取れるようになります。
RSRuby の現在のバージョンでは R 2.2.1 だけでテストされていますが、以前のバージョンでも動くでしょう。
2.2 インストール
インストールするには R と標準 ruby 拡張インストーラ setup.rb や rubugems を使って適切な構成でセットアップしていなくてはいけません。
1. まずは、R_HOME 環境変数が設定されていることを確認してください。私の Ubuntu linux ではこうなっています:
R_HOME=/usr/lib/R
また OS X ではこうです:
R_HOME=/Library/Frameworks/R.framework/Resources
2. Compile and install the Ruby ライブラリの setup.rb を使ってコンパイルとインストールをする場合はこうです。
libR 共有ライブラリ付きで R がインストールされている必要があります。 これは通常 R_HOME と同じになるでしょう.
cd rsruby
ruby setup.rb config -- --with-R-dir=/usr/lib/R
ruby setup.rb setup
sudo ruby setup.rb install
もし、rubygems を利用するなら R のインストールディレクトリを指定する必要があります。
gem install -- --with-R-dir=/usr/lib/R
もし RSRuby がコンパイルされないなら R ライブラリの設定パスが必要かもしれません。
以下のことがそろっている必要があります。( RPy のドキュメントから持ってきました):
* R_HOME/bin/libR.so のリンクを /usr/local/lib か /usr/lib に作成すること、ldconfig を実行すること。
* または、.bashrc (か環境変数)に以下を追加すること:
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:R_HOME/bin
* または、 /etc/ld.so.conf に次の行を追加すること
R_HOME/bin
そして、 ldconfig を実行すること。
3. 確認:
ruby setup.rb test
RSRuby はすべてのテストにパスしないといけない。
インストール時に setup.rb に適切なディレクトリ(home ディレクトリのような)を指定していれば root 権限が無くても実行できます。
ruby setup.rb --help
を実行すれば、詳細がわかります。
2.3 使い方: 簡単な例
RSRuby は irb でも動作します。サンプルを示します。:
\$irb -r rsruby
irb> r = RSRuby.instance
=> #<RSRuby:0xb7cdec04>
要求された rsruby をモジュールからロードするとき、 RPy と違うのは R インタプリタを実行していないことです。RSRuby.instance を呼んで、R インタプリタを実行します。 これで r オブジェクトに保存され、参照を返します。 1つの R インタプリタだけが実行され、 RSRuby は標準ライブラリの Singleton モジュールを利用します。 これは、RSRuby.new を RSRuby.instance に置き換えています。
RSRuby.instance への更なる呼び出しはオリジナルのインタプリタオブジェクトを返します。
R 関数を呼ぶと R インタプリタオブジェクトを作ります。 次の例の
R 関数 wilcox.test では、引数として2つの Ruby 配列を設定しています。 これらの配列は RSRuby によって R に変換されます。R メソッドから返された list は Ruby Hash に変換されます。 第4章で変換手順の詳細を示します。
irb> r.wilcox_test([1,2,3],[4,5,6])
=> {"p.value"=>0.1,
"null.value"=>{"mu"=>0.0},
"data.name"=>"c(1, 2, 3) and c(4, 5, 6)",
"method"=>"Wilcoxon rank sum test",
"alternative"=>"two.sided",
"parameter"=>nil,
"statistic"=>{"W"=>0.0}
}
表示オプション
横に並べて表示:
変化行の前後のみ表示: