R from python#
Python has an R api called Rpy2
. You can install it with conda install rpy2
or pip install rpy2
. We’ll just cover some really basic examples.
import rpy2
import rpy2.rinterface as ri
import rpy2.robjects as ro
from rpy2.robjects.packages import importr
#ri.initr()
The robjects sub-library contains the simplest variation of the interface. Here’s an example of executing R code in a python session.
z = ro.r('''
x = matrix(1 : 10, 5, 2)
y = matrix(11 : 20, 5, 2)
x + y;
''')
print(z)
[,1] [,2]
[1,] 12 22
[2,] 14 24
[3,] 16 26
[4,] 18 28
[5,] 20 30
You can then operate on this matrix in python. Here’s an example where we import the plotting library and use it.
base = ro.packages.importr('base')
base.rowSums(z)
FloatVector with 5 elements.
34.000000 | 38.000000 | 42.000000 | 46.000000 | 50.000000 |
Here’s an example of defining a function in R and using it in python.
fishersz = ro.r('function(r) .5 * log((1 + r) / (1 - r))')
fishersz(.7)
FloatVector with 1 elements.
0.867301 |