2011-10-28 8 views
9

RコードをPythonに変換するモジュール(rpyとrpy2)があることは知っています。PythonをRに変換する

逆引きを行う簡単な方法はありますか?

+1

CRANのrJythonパッケージとR-ForgeのrPythonパッケージは、RからJythonコードとPythonコードを呼び出します。CRANのrSymPyパッケージはrJythonを使用します(実際ryythonは以前はrSymPyの一部でした。独自のパッケージにまとめられています)。 –

答えて

13

rpy(2)はコードを変換しません。それはあなたに、PythonからRと通信し、Python内からRコマンドを発行するインターフェースだけを許可します。

RがPythonで利用できない統計ライブラリに非常に依存しているとすれば、変換は一般的に膨大な量の作業になります。

lmer (y ~ x1 + x1 + (1|id), mydat) 

のような1行をPythonのものに変換するには多大な労力が必要です。 pythonからそのコードを実行したいだけなら、rpyを使用します。あなたが興味を持っているように思われる、他の方法をとると、変換はしばしばもっと簡単になります。しかし、コードはRに対して非常にうまく最適化されず、非常にうまく動作しなくなる傾向があります。私は最近、Pythonから変換されたRコードを、行ごとに多かれ少なかれ直接翻訳としてRコードを書いた人によって最適化しました。最適化の長さは1/3で、20〜1000倍高速になりました(機能によって異なります)。

+0

Rコード 'lmer(y〜x1 + x1 +(1 | id)、mydat)'は何をしますか?私はこれがNumPy/SciPyがうまくいくような仕事ではないかと思います。 – EOL

+1

NumPy/SciPyのマニュアルを簡単に見てみると、その統計サポートはかなり基本的なものであることが示唆されています... 'lmer'(' lme4'パッケージには線形混合モデルをフィットするためのものがあります。 –

4

Johnが正しいです。これらは言語間の変換ではなく、インタフェース言語です。言語の変換は特に一般的ではありませんが、インタフェースはインタフェースです。しかし、オブジェクト変換は、インターフェイス言語の重要な部分であるため、かなり一般的です。

RpyとRpy2に加えて、RSPythonをご覧ください。また、オブジェクトの変換、およびRpyに影響を与えます。

4

rpy2は、RとPythonの間の両方向に進むことができます.Rコード(doc here)を実行しているときにPythonコードを呼び出すことができます。

1
あなたは非常に簡単に両方の道を行くことができPypeRと

:それは素晴らしい作品と、この記事では、それがどのように動作するかを説明しhttp://www.webarray.org/softwares/PypeR/

RからのPythonへとPythonからR. にし、代替案を上回る利点(RPY、rpy2等)

http://www.jstatsoft.org/v35/c02/paper

私が個人のPythonからRでスタットモデルを実行するためにそれを使用し、そして他の1つの方法から/エクスポートデータフレームをインポート(およびr-データフレーム及びその逆にnumpyのフレームに変換します)。