将R Matrix转换为Pandas Dataframe

时间:2014-07-14 03:05:59

标签: python r matrix pandas rpy2

我正在尝试将R矩阵转换为pandas数据帧。我正在使用:

import pandas.rpy.common as com
df = com.convert_to_r_dataframe(r_matrix)

我得到了:

TypeError: 'float' object cannot be interpreted as an index

奇怪的是,我遇到的所有文档都省略了这个用例。我还决定将R矩阵转换为numpy array - 因为无论如何我都想迭代这些行。

2 个答案:

答案 0 :(得分:3)

只需使用numpy.array()

from rpy2 import robjects
m = robjects.reval("matrix(1:6, nrow=2, ncol=3)")
import numpy as np
a = np.array(m)

答案 1 :(得分:1)

我认为您对convert_to_r_dataframeconvert_robj之间的区别感到困惑。使用前一个用于转换 TO R,后一个用于从R转换 BACK

In [30]:
from rpy2 import robjects
m=robjects.r('matrix(1:6, nrow=2, ncol=3)')
In [31]:

print com.convert_robj(m)
   0  1  2
1  1  3  5
2  2  4  6
In [32]:

m=robjects.r('as.data.frame(matrix(1:6, nrow=2, ncol=3, dimnames=list(1:2, 1:3)))')
In [33]:

print com.convert_robj(m)
   1  2  3
1  1  3  5
2  2  4  6