I'd like to convert a numpy matrix to R an matrix. I'm aware that you to do this:
from rpy2 import robjects as ro
ro.conversion.py2ri = ro.numpy2ri
ro.numpy2ri.activate()
And then build an R matrix:
mat_r = ro.r.matrix(mat_py)
But the problem is, whenever I refer to the new matrix in python it gets converted back to a numpy matrix. For instance, I need to set the row and column names, but doing that results in this:
mat_r.rownames = numpy.array([1,2,3])
AttributeError: 'numpy.ndarray' object has no attribute 'rownames'
Anyone know how I can keep my shiny new r matrix as an r matrix, and stop is becoming a ndarray again?
One way might be
The conversion can also be called explicitly (the conversion generics are in the module, here
numpy2ri
).