Python で R

 現在、オープンソースの数値計算では、Rの最大のライバル?(NumPy?+SciPy?+pandas + etc.のモジュールとあわせて)になりつつあるスクリプト言語Python。
RPy2はPython で、R が使える。

rpy2

Rpy を書き直したもの。現行の Python に対応。インストールも楽そう。Windows 用バイナリあり。

ドキュメント

インストール

起動

import rpy2.robjects as robjects

使用方法

r = robjects.r
print(r('3')) # または r('3')[0]

  

r('3') #だと値は表示されない
  • float形式のリストを読み込み、平均値と分散を求めます。Rを使用するにはrpy2ベクトルというオブジェクトを生成する必要があります。
    import rpy2.robjects as robjects
    
    rmean = robjects.r('mean')
    rvar = robjects.r('var')
    tmp_vec = [1.1,3.3,5.5]
    vec = robjects.FloatVector(tmp_vec)
    mean = rmean(vec)[0]
    var = rvar(vec)[0]
  • ANOVAをやります。ここ(http://rpy.sourceforge.net/rpy2/doc-2.1/html/introduction.html#r-vectors)で紹介されている通り。
    import rpy2.robjects as robjects
    
    r = robjects.r
    
    ctl = robjects.FloatVector([4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14])
    trt = robjects.FloatVector([4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69])
    group = r.gl(2, 10, 20, labels = ["Ctl","Trt"])
    weight = ctl + trt
    
    robjects.globalenv["weight"] = weight
    robjects.globalenv["group"] = group
    lm_D9 = r.lm("weight ~ group")
    print(r.anova(lm_D9))
    このANOVAのP値だけ抜き出します。これは参照ページにはないです。r.anova(lm_D9)は分散分析表の各数値が入った二次元のリストになっているようです。
    p = r.anova(lm_D9)[4][0]
    最初の要素は分散分析表でのカラムの順番を示しており、二つめは群間と郡内の各行ですが、P値は群間の行にでてくるので0で取り出せます。
  • ベクトル
  • マトリックス
  • 関数
  • グラフィック
    r.X11()

分析

ggplot2 in Python: A major barrier broken

Rpy

Linux と Win32 をサポート。

インストール

  • Linux
  • Win32
    1. python がインストールされていなければ、ActivePythonをダウンロード/インストール。
    2. RpyのウェブページよりEXEファイル(rpy-1.0.3-R-2.6.2-win32-py2.4 等)をダウンロード。Rのバージョンと、PythonのバージョンにあったEXEファイルを選択すること。
    3. pywin32-212.win32-py2.4.exe をRpyのウェブページにあるリンク先よりダウンロード・インストール
    4. NumPy?をRpyのウェブページにあるリンク先よりダウンロード・インストール。
    5. rpy の対応する R のバージョンへのパスを、環境変数 R_HOME に指定

呼び出し

from rpy import *

関数

r.rのコロンの付かない関数名(引数,...)または r('rの関数名')

配列とリスト

R オブジェクト

利用例

ARALT

Django-dataplot Django + R + RPy + Imagemagick でグラフ表示

rPython - Package allowing R to call Python

RSPython

 R と Python 双方から利用可能

RPyGeo?

  • RPyGeo(Python 経由による、R での ArcGIS のジオプロセッシング)パッケージ中のオブジェクト中の一覧?

traitr

  • An interface for creating GUIs modeled in part after traits UI module for python

Jython

  • rSymPy?: SymPy? 数式処理システムの R インターフェース
  • PyWPS Web で提供している地理空間情報処理サービスの入出力の標準化プロトコル(OGC 準拠)。Grass GIS が標準であるが、R も利用できる。

RcppCNPy - Rcpp bindings for NumPy? files

ipython

R と Python/NumPy?/SciPy?

参考リンク


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Google
WWW を検索 OKADAJP.ORG を検索
Last-modified: 2015-03-01 (日) 01:15:59 (1727d)