53

私は R にまったく慣れていませんが、Python にはほとんど慣れています。私は R コードを書くのが苦手です。R への python インターフェイスを探しています。これにより、R パッケージをpythonic の方法で使用できます。

私はGoogleの調査を行い、それを行うことができるいくつかのパッケージを見つけました:

しかし、どちらが優れているかわかりませんか?貢献者が多く、より積極的に使用されているのはどれですか?

私の主な要件は、R パッケージにアクセスするための pythonic の方法であることに注意してください。

4

3 に答える 3

66

@lgautier が指摘したように、この件に関してはすでに別の回答があります。Python を最初に知っている初心者として R にアプローチする経験を追加するので、ここに私の答えを残します。


私は Python と R の両方を使用しており、R の初心者としてのあなたの必要性に共感します。

あなたが得る答えは主観的なものになるので、私の経験からいくつかの点を要約します。

  • インターフェイスとしてrpy2を使用していますが、これは「Pythonic」であり、安定しており、予測可能であり、私のニーズに対して十分効果的であることがわかりました。私は他のパッケージを使用していないので、これはそれらについてのコメントではなく、rpy2 自体のメリットについてです。
  • しかし、両方を学ばずに Python で R を使用する簡単な方法があるとは思わないでください。2 つの言語間のインターフェイスを追加すると、両方の言語を知っている場合はコーディングが容易になりますが、いずれかの言語が不十分な人にとってはデバッグの悪夢です。

私のアドバイス:

  1. ほとんどのアプリケーションでは、Python には、データ ラングリングからプロットまで、R で実行したいほとんどのことを実行できるパッケージがあります。SciPyNumPypandasBioPythonmatplotlibおよびその他の科学パッケージ、さらには完全なAnacondaまたはEnthought python ディストリビューションをチェックしてください。これにより、Python 環境にとどまることができ、必要な機能のほとんどを提供できます。
  2. 同時に、R の膨大な範囲に特化したパッケージが必要になるため、インタラクティブな環境で時間をかけて学習してください。コマンド ラインで基本的な R をマスターすることさえほとんど不可能であることがわかりましたが、RStudioとQuick-RおよびLearn-Rのチュートリアルにより、非常に速く作業を進めることができました。

両方を理解すれば、クロスランゲージ デバッグの恐怖なしに、rpy2でマジックを行うことができます。


新しいリソース

2015 年 1 月 29 日の更新

この回答は人気があることが証明されているため、さらに 2 つの最近のリソースを指摘すると役立つと思いました。

トリプレットRRserve、およびpyRserveを使用すると、Python から R へのネットワーク ブリッジを構築できます。これにより、Python で実装されているかのように R 関数を Python から呼び出すことができ、この接続を介して完全な R スクリプトを実行することもできます。

  • R と Python を組み合わせて使用​​できるようになり、両方の言語を組み合わせた再現可能な研究とノートブックを作成する作業が大幅に軽減rmagicされました。IPython/Jupyter
于 2012-07-30T07:36:13.160 に答える
5

rpy2、pyrserve、および pyper を相互に比較することに関する質問は、以前にサイトで回答されました。

貢献者の数に関しては、3 つすべてが比較的少数であると言えます。Ohlohのようなサイトでは、より詳細な回答を得ることができます。

パッケージがどの程度積極的に使用されているかを判断するのは困難です。ダウンロード数、メーリング リストへの投稿数、stackoverflow などのサイトでの質問数、それを使用または引用している他のパッケージの数、履歴書の数、パッケージ。公正な評価を行うことができると信じている限り、利益相反があると見なされる可能性もあります。;-)

3つすべてに長所と短所があります。それに基づいて選択するといいでしょう。

于 2012-07-30T08:20:47.950 に答える
4

私の個人的な経験はRpyではなくRpy2です。しばらく使用していましたが、systemコマンドを使用するためにやめました。私の典型的なケースは、Python スクリプトを使用して FORTRAN モデルを実行し、R で後処理することでした。私の経験では、最も簡単な解決策は R を使用してコマンド ライン ツールを作成することでした。これは非常に簡単です (少なくとも Linux では)。コマンド ライン ツールはモデル実行のルートで実行でき、スクリプトは一連の R オブジェクトとプロットをRoutputディレクトリに生成します。このように R と Python を切り離すことの利点は、Python コードとは別に R コードを簡単にデバッグできることでした。

RpyR と Python の間で多くのやり取りが必要な場合に、本当に役立つと思います。しかし、機能が適切に分離可能であり、ディスク I/O のオーバーヘッドがそれほど悪くない場合は、system呼び出しに固執します。?systemシステム コールの詳細、およびRscriptコマンド ライン ツールとしての R スクリプトの実行については、を参照してください。

R コードを Python の方法で記述したいという希望に関しては、すべてのソリューションで R コードを R 構文で記述する必要があるため、これは不可能です。Rpyこれは R 構文を意味しますが、少し異なります (たとえば、違い.ます)。を通じて R を使用することに近道はないという @gauden に同意しRpyます。

于 2012-07-30T09:15:23.050 に答える