У меня есть R-скрипт, который записывает фрейм данных. Для простоты предположим, что фрейм данных записан в R:
testing = data.frame(x=c(1,2,3), y = c(4,5,6))
Моя цель - использовать код Python для некоторого моделирования на этом фрейме данных (очевидно, не на этом фактическом фрейме данных, но, опять же, для простоты). Итак, я написал следующий код на Python для получения кода R в:
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
import rpy2.robjects.packages as rpackages
base = importr('base')
utils = importr('utils')
from rpy2.robjects.lib.dplyr import DataFrame
from rpy2.robjects import pandas2ri
pandas2ri.activate()
...
r = robjects.r
r.source("python-testing_script.R")
Эллипсы здесь представляют меня загрузкой в другие необходимые пакеты, но они не нужны для этой проблемы. Примечание python-testing_script.R
- это то место, где записывается r-кадр данных.
Я думал, что при поиске в этом коде R в мою глобальную среду на Python будет записан кадр данных Pandas, но вместо этого я не получаю ничего нового в среду и следующий вывод:
Out[1]:
R object with classes: ('list',) mapped to:
<ListVector - Python:0x00000143B9F98188 / R:0x00000143CD2BE988>
[DataFrame, BoolVector]
R object with classes: ('list',) mapped to:
<ListVector - Python:0x00000143B9F98188 / R:0x00000143CD2BE988>
[DataFrame, BoolVector]
visible: <class 'rpy2.robjects.vectors.BoolVector'>
R object with classes: ('logical',) mapped to:
<BoolVector - Python:0x00000143BFE14048 / R:0x00000143B9DC3DD8>
[ 0]
Любые советы о том, что здесь делать? Я всегда мог записать свой фрейм данных в CSV-файл и прочитать CSV-файл в Python, но я подумал, что было бы интереснее, чтобы R и Python хорошо играли вместе. Я также понимаю, что в этом тривиальном случае я мог бы просто написать фрейм данных на Python, но мой реальный сценарий не так прост.