我希望将numpy矩阵转换为R矩阵。我知道你要这样做:
from rpy2 import robjects as ro
ro.conversion.py2ri = ro.numpy2ri
ro.numpy2ri.activate()
然后建立一个R矩阵:
mat_r = ro.r.matrix(mat_py)
但问题是,每当我在python中引用新矩阵时,它就会被转换回numpy矩阵。例如,我需要设置行名和列名,但这样做会导致:
mat_r.rownames = numpy.array([1,2,3])
AttributeError: 'numpy.ndarray' object has no attribute 'rownames'
任何人都知道如何将我闪亮的新r矩阵保持为r矩阵,并且停止再次成为一个ndarray?
答案 0 :(得分:1)
一种方式可能是
ro.numpy2ri.deactivate()
也可以明确调用转换(转换泛型位于模块中,此处为numpy2ri
)。