PythonからRを呼ぶ
いくら、Pythonに充実した標準ライブラリが備わっているといえども、統計処理をしようと思うと、なかなかすぐにできるものではありません。順位和検定をしたいと思い、Pythonのライブラリを少し探したけど、見つからないのでR(http://www.r-project.org/)との連携を模索したらすぐにいいのが見つかりました。
RPy(http://rpy.sourceforge.net/
現時点で、RC1が発表されていました。2.4系に対応しています。ちなみに試した環境は、2.4.3
RPyは、rpy-1.0-RC1.win32-py2.4.exeを選択。
インストールは、言われるがままに、
Python for Windows extensions(pywin32-210.win32-py2.4.exe
Numerical Python(Numeric-24.2.win32-py2.4.exe
をそれぞれ、インストール。R.dllのある場所を、windowsの環境変数PATHに追加。これで、OK!と思いきや、実行すると
>>> import rpy
RHOME= C:\Program Files\R\R-2.3.1
RVERSION= 2.3.1
RVER= 2031
RUSER= C:\Documents and Settings\tsuji
Loading the R DLL C:\Program Files\R\R-2.3.1\bin\R.dll .. Done.
Loading Rpy version 2031 ..

Traceback (most recent call last):
File "", line 1, in -toplevel-
import rpy
File "C:\Python24\Lib\site-packages\rpy.py", line 112, in -toplevel-
exec("import _rpy%s as _rpy" % RVER)
File "", line 1, in -toplevel-
ImportError: No module named _rpy2031

といったようなメッセージが出る。ここでは、エラーを再現するためにわざとやっているけど、結局、rpyがインストールされたフォルダ(たとえば、C:\Python24\Lib\site-packages)にモジュール(_rpy2031.pyd)がないとダメみたい。今回使ったRC1は、デフォルトでR2.3.1に対応しているので、Rのバージョンをこれにあわせておくと、楽かも。

import rpy

wc_result = rpy.r.wilcox_test( data1 , data2, paired = rpy.r.TRUE );
wc_result.get( "p.value" )

で、計算結果のP値を得られる。TRUE,FALSEは、そのまま文字列では書けないので注意。
スポンサーサイト
【2006/10/14 20:51】 | Python | トラックバック(0) | コメント(0) | page top↑
<<networkxとmatplotlib | ホーム |
コメント
コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
→http://tanopy.blog79.fc2.com/tb.php/1-1b5bde2a
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |