在一个jupiter笔记本中,我在R中创建了一些2-d-list
%%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
%Rpull x
不返回漂亮的表示,而是返回ListVector
。如何将其转换为更好的东西,例如一个dict / pd.Dataframe?到目前为止,我没有运气http://pandas.pydata.org/pandas-docs/stable/r_interface.html
我要转换的列表是一个二维列表,如results
从上面剪切的更新代码
答案 0 :(得分:1)
只需切片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'}
答案 1 :(得分:0)
由于您创建了R列表(而不是数据框),
返回的Python对象是ListVector
。
R列表可以有重复的名称,转换为dict
无法保证安全的内容。
如果你感到幸运,想要一个字典,那就相当简单了。 例如:
from rpy2.robjects.vectors import ListVector
l = ListVector({'a':1, 'b':2})
d = dict(l.items())