У меня есть некоторый R-код, который принимает в качестве входных данных data.frame
, где один из столбцов содержит list
экземпляров в своих ячейках, например ::100100
data.frame(x=c("a", "b", "c"), y=I(list(c(1,2,3),c(4,5,6),c(7,8,9))))
Что выглядит как
x y
1 a 1, 2, 3
2 b 4, 5, 6
3 c 7, 8, 9
Я хотел бы создать похожие панды DataFrame
в Python и передать его в мой код R, используя инструменты из библиотеки rpy2 (версия 2.9.4). Однако, когда я запускаю следующее:
from rpy2.robjects import pandas2ri
pandas2ri.activate()
df = DataFrame({
"x" : ["a", "b", "c"] ,
"y" : [[1,2,3], [4,5,6], [7,8,9] ]
})
r_df = pandas2ri.py2ri(df)
print(r_df)
Я получаю этот вывод:
x y.0.1L y.0.2L y.0.3L y.1.4L y.1.5L y.1.6L y.2.7L y.2.8L y.2.9L
0 a 1 2 3 4 5 6 7 8 9
1 b 1 2 3 4 5 6 7 8 9
2 c 1 2 3 4 5 6 7 8 9
Конечно, R-код использовал функцию «Inhibit» I()
, чтобы иметь возможность удерживать экземпляры list
в data.frame
в первую очередь. Есть ли способ выразить подобное намерение через интерфейсы rpy2?