How does one use R with Python?
Published: 2020-07-02 22:10:15


In the world of data science, the two most popular software packages are R and Python. R started out as an offshoot of another language, the S language, and was developed at Bell Laboratories. R was conceived in 1992, the first version released in 1995 and a stable beta version was released in 2000. According to the r-project.org, R is an integrated software designed for data manipulation and calculation and graphics. It was designed to be effective at data handling, data storage, has a large integrated collection of tools for data analysis, operators for calculations on arrays and matrices and graphical capabilities for data analysis and display. 

Python has a slightly longer history, it was conceived in the late 1980s, based on the ABC language. The first version was released in 1991, Python 2.0 was released in 2000 and Python 3.0 was released in 2008. Python was designed to be a general-purpose, object-oriented, high-level programming language. It was developed with an emphasis of code readability, and simplicity, with the ability to express concepts in few lines of code. Python has extensive libraries to conduct all types of work, including statistical analysis.  So, R was developed as a coherent data analysis tool while  Python was developed as a general-purpose programming language. 
 
As mentioned, Python was not developed for data analysis, but it has an extensive suite of data analysis tools. As a result, many people choose to use one or the other for data analysis. However, R is a overall a better tool for data analysis due to the breath of statistical options available. A disadvantage of using R, is that performance wise, R is not a very fast language and can be a memory glutton at times when dealing with large datasets, while Python is significantly faster at handling massive datasets. A good thing is that now there are tools where one can access R in Python. And one advantage of using R within Python is that a Python user is able to easily access excellent R packages like ggplot2, tidyr, dplyr. 

In General, there are now 3 ways to access R via Python: 
1) PyperR is a python interface to R language through the pipe communication method. This useful interface enables data analysts to do the data wrangling with python and the statistical analysis with R. It passes objects interactively between two computing systems. PypeR is included in Python’s Package Index which means it is convenient to install. PypeR is especially useful when there is no need for frequent interactive data transfers between Python and R. PyperR also provides conversion of data between Python data types and R data types. 

2) pyRServe is a library for connecting Python to an R process running under Rserve. Through such a connection, variables can be set in R from Python, and R-functions can be called remotely. Through this type of connection, variables can be get and set in R from Python. R-functions can be called remotely. Another benefit is that the R process does not have to run on the same machine running Python, so it can be run on a remote machine. All variable access and function calls will be moved there through the network. Also, all data structures will be converted from R to Python and back. 

3) rpy2 is an interface between both languages to benefit from the libraries of R while working in Python. rpy2 runs embedded R in a Python process. It creates a framework that can translate Python objects into R objects, pass them into R functions, and convert R output back into Python objects. 

Of the 3 methods highlighted above, it appears that rpy2 is used more often, as a result, it is the one which is more actively being developed.