简介
R 语言可以将单个 R 对象保存为一种特殊的文件格式 .rds
Python 读取 rds 文件主要有两种方案:
-
pyreadr:无需安装直接读取,但对于复杂数据可能读取失败,报错
pyreadr.custom_errors.LibrdataError: The file contains an unrecognized object
- rpy2:Python 运行 R 的桥梁,需要安装 R,功能更强更丰富
pyreadr
安装
pip install pyreadr
代码
import pyreadr
path = 'test.rds'
file = pyreadr.read_r(path)
print(file.keys())
写
import pyreadr
import pandas as pd
df = pd.DataFrame([['a', 1], ['b', 2]], columns=['A', 'B'])
pyreadr.write_rds('test.rds', df)
rpy2
要求:
- Python ≥ 3.7
- R ≥ 4.0
安装 R 语言
Windows 安装
配置环境变量 Path:C:\Program Files\R\R-4.1.0\bin\x64
测试
R --version
CentOS 安装
yum install R
Ubuntu 安装
apt install r-base
Conda 安装
conda install r-base=4.1.0
安装库
pip install rpy2
代码
import rpy2.robjects as robjects
path = 'test.rds'
readRDS = robjects.r['readRDS']
file = readRDS(path)
colnames = robjects.r['colnames']
print(file)
print(colnames(file))
# A B
# 1 a 1
# 2 b 2
#
# [1] "A" "B"
如果遇到需要安装模块的话,先安装,后导入,如 Seurat
模块
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr, isinstalled
if not isinstalled('Seurat'):
utils = importr('utils')
utils.chooseCRANmirror(ind=1)
utils.install_packages('Seurat')
Seurat = importr('Seurat')
path = 'test.rds'
readRDS = robjects.r['readRDS']
colnames = robjects.r['colnames']
file = readRDS(path)
print(file)
print(colnames(file))
校验 celltype 是否在 Seurat 对象中文章来源:https://www.toymoban.com/news/detail-453025.html
conda install r-Seurat
verify = robjects.r("'celltype' %in% colnames({}@meta.data)".format(file.r_repr()))
result = verify[0]
print(result)
文章来源地址https://www.toymoban.com/news/detail-453025.html
参考文献
- pyreadr Documentation
- pyreadr GitHub
- rpy2 Documentation
- rpy2 GitHub
- R 环境安装
- Loading a .rds file in Pandas
- python与R交互(rpy2的安装、配置和使用)
- Rpy2 not finding package
- Seurat
- 如何使用conda安装R和R包
到了这里,关于Python读取rds文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!