如何从 R 获取数据到 pandas

How to get data from R to pandas

在 jupiter notebook 中,我在 R 中创建了一些二维列表,例如

%%R
first <- "first"
second <- "second"

names(first) <- "first_thing"
names(second) <- "second_thing"

x <- list()
index <- length(x)+1
x[[index]] = first
x[[index +1]] = second

a %Rpull x 不是 return 漂亮的表示,而是 ListVector。我怎样才能将它转换成更好的东西,例如字典/pd.Dataframe?到目前为止,我没有跟随 http://pandas.pydata.org/pandas-docs/stable/r_interface.html

编辑

我要转换的列表是一个二维列表,例如 results 从上面截取的更新代码

只需切片 ListVector:

%Rpull x
pd.DataFrame(data=[i[0] for i in x], columns=['X'])

如果您需要字典:

dict([[i,j[0]] for i,j in enumerate(x)])
{0: 'first', 1: 'first'}

由于您创建了一个 R 列表(而不是数据框), 返回的 Python 对象是 ListVector.

R 列表可以有重复的名称,使得转换为 dict 无法保证安全。

如果你运气好,想要一个dict,还是比较简单的。 例如:

 from rpy2.robjects.vectors import ListVector
 l = ListVector({'a':1, 'b':2})
 d = dict(l.items())