python - 如何将 R 的 .rdata 文件加载到 Python 中?

标签 python pandas rpy2

我正在尝试将一部分 R 代码转换为 Python。在这个过程中我遇到了一些问题。

我有如下所示的 R 代码。在这里,我以 .rdata 格式保存我的 R 输出。

nms <- names(mtcars)
save(nms,file="mtcars_nms.rdata")

现在我必须将 mtcars_nms.rdata 加载到 Python 中。 我导入了 rpy2 模块。然后我尝试将文件加载到 python 工作区中。但是无法看到实际输出。

我使用以下 python 代码导入 .rdata

import pandas as pd
from rpy2.robjects import r,pandas2ri
pandas2ri.activate()

robj = r.load('mtcars_nms.rdata')
robj

我的 python 输出是

R object with classes: ('character',) mapped to:
<StrVector - Python:0x000001A5B9E5A288 / R:0x000001A5B9E91678>
['mtcars_nms']

现在我的目标是从 mtcars_nms 中提取信息。

在 R 中,我们可以使用

load("mtcars_nms.rdata");
get('mtcars_nms')

现在我想用 Python 做同样的事情。

最佳答案

有一个新的python包pyreadr这使得将 RData 和 Rds 文件导入 python 变得非常容易:

import pyreadr

result = pyreadr.read_r('mtcars_nms.rdata')

mtcars = result['mtcars_nms']

它不依赖于安装 R 或其他外部依赖项。 它是 C 库的包装器 librdata , 因此速度非常快。

您可以使用 pip 非常轻松地安装它:

pip install pyreadr

repo 协议(protocol)在这里:https://github.com/ofajardo/pyreadr

免责声明:我是开发者。

关于python - 如何将 R 的 .rdata 文件加载到 Python 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51722253/

相关文章:

python - ftplib连接SFTP服务器没有错误

python - 元组列表计算元组的最小-最大日期差异

python - datetime 如何理解第 53 周?

python - pandas 和 rpy2 : Why does ezANOVA work via robjects. r 但不是 robjects.packages.importr?

pandas - RMagic、IPython 和摘要信息

python - 将 Pandas Dataframe 列转换为 R 因子

python - 使用 Dask 并行化 HDF 读取-翻译-写入

python - ndarray 到 TFRecord 的缓慢序列化

python - Pandas:使用列值的随机采样替换 NaN

python - Pandas:删除具有相同 "rounded"值的重复行而不创建新列