pythonrrpy2pyrservepyper

Python interface for R Programming Language


I am quite new to R, and pretty much used to python. I am not so comfortable writing R code. I am looking for python interface to R, which lets me use R packages in pythonic way.

I have done google research and found few packages which can do that:

But not sure which one is better ? Which has more contributers and more actively used ?

Please note my main requirement is pythonic way for accessing R packages.


Solution

  • As pointed out by @lgautier, there is already another answer on this subject. I leave my answer here as it adds the experience of approaching R as a novice, knowing Python first.


    I use both Python and R and sympathise with your need as a newcomer to R.

    Since any answer you get will be subjective, I summarise a few points from my experience:

    My advice:

    1. For most applications, Python has packages that allow you to do most of the things that you want to do in R, from data wrangling to plotting. Check out SciPy, NumPy, pandas, BioPython, matplotlib and other scientific packages, or even the full Anaconda or Enthought python distributions. This allows you to stay within the Python environment and provides you most of the power that you need.
    2. At the same time, you will want R's vast range of specialised packages, so spend some time learning it in an interactive environment. I found it almost impossible to master even basic R on the command line, but RStudio and the tutorials at Quick-R and Learn-R got me going very fast.

    Once you know both, then you will do magic with rpy2 without the horrors of cross-language debugging.


    New Resources

    Update on 29 Jan 2015

    This answer has proved popular and so I thought it would be useful to point out two more recent resources:

    The triplet R, Rserve, and pyRserve allows the building up of a network bridge from Python to R: Now R-functions can be called from Python as if they were implemented in Python, and even complete R scripts can be executed through this connection.