我正在尝试将一部分 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/