Как получить данные от R до панд

В блокноте Юпитера я создал 2-й список в 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

%Rpull x не возвращает хорошее представление, а скорее ListVector, Как я могу преобразовать это во что-то более хорошее, например, в dict / pd.Dataframe? Пока что мне не повезло после http://pandas.pydata.org/pandas-docs/stable/r_interface.html вытащить из R

редактировать

Список, который я хочу преобразовать, представляет собой 2-й список, например results обновленный код снят сверху

2 ответа

Решение

Просто нарезать 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 то, что не может быть гарантировано безопасным.

Если вам повезло и вы хотите диктовать, это довольно просто. Например:

 from rpy2.robjects.vectors import ListVector
 l = ListVector({'a':1, 'b':2})
 d = dict(l.items())
Другие вопросы по тегам