【发布时间】:2019-04-26 15:11:28
【问题描述】:
我有一个编写数据帧的 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 代码中进行采购时,Pandas 数据帧会被写入我的 Python 全局环境中,但我没有得到任何新的环境和以下输出:
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 编写数据帧,但我的实际场景并不那么简单。
【问题讨论】: