Python读取rds文件

这篇具有很好参考价值的文章主要介绍了Python读取rds文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

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 对象中

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

参考文献

  1. pyreadr Documentation
  2. pyreadr GitHub
  3. rpy2 Documentation
  4. rpy2 GitHub
  5. R 环境安装
  6. Loading a .rds file in Pandas
  7. python与R交互(rpy2的安装、配置和使用)
  8. Rpy2 not finding package
  9. Seurat
  10. 如何使用conda安装R和R包

到了这里,关于Python读取rds文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [python]将多张图片合并为单个pdf文件

    最近有个个人需求是要把多个图片文件合并为一个PDF文件,这样方便用PDF阅读器连续看,避免界面点一下,只会图片放大。( 比如看漫画 ) 主要思路是先把单张图片转换成单个PDF文件,然后把PDF文件进行合并。原先是用WPS的转换工具做的,但WPS每次只能批量转换30张,如果

    2024年03月09日
    浏览(101)
  • 如何用python获取单个文件 或 文件夹中所有文件的行数

    本例展示获取单个txt文件中的行数: 本例展示获取labels下的所有txt文件内容的总行数: 函数解释 os.walk()是一种遍历目录数的函数,机理类似深度优先搜索和层次搜索策略,其返回的是 root dirs files 返回值解释 root :代表当前遍历的目录路径,string类型 dirs :代表root路径下的

    2024年02月09日
    浏览(75)
  • 将实体类对象数据存入和读取进csv文件(可追加)

      最近公司一个新的项目,因为需要存储的数据很少,单独去部署一个数据库去存储该数据显然是不划算的,所以想的是通过存入csv文件中来代替存入数据库中。说干就干。   CSV代表逗号分隔值(Comma-Separated Values),是一种常见的文本文件格式,用于存储表格数据,例如电

    2024年02月12日
    浏览(51)
  • Python tkinker 界面设计与图标设置和图片文件打包成单个exe

    1.  python 打包图片资源文件和逻辑文件,以及桌面应用图标  2. 完整代码如下。其作用是调用MTK 研发的图片信息dump工具,对图片AE 和AWB 进行分析归类到所属的目录中,并统计目录下文件个数,填充到最后一级文件夹名称开头。 3. 将图片文件转换为 py文件的脚本 4. 主逻辑脚

    2024年02月15日
    浏览(45)
  • 【Python】【完整代码】秀!巧用Python实现对单个文件或多个文件中的指定字符串进行批量修改/替换(超详细)

    目录 1. 对单份文件 1.1 将替换后的内容保存到新文件中 1.2 直接替换当前文件中的字符

    2024年02月21日
    浏览(55)
  • 其实python面向对象3分钟就可以入门(14)

    本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将会逐步更新。 若有想学习的内容可以在评论区留

    2023年04月23日
    浏览(45)
  • springboot yml文件自定义配置的读取、使用 字符串 数组 对象 集合

    .yml 配置 controller代码 实体类 Student.java Users.java User.java 方式一、 http://localhost:9801/test/test1 方式二、 http://localhost:9801/test/test2 方式三、 http://localhost:9801/test/test3 参考: SpringBoot:yml文件详解-CSDN博客 https://www.jb51.net/article/216769.htm

    2024年02月05日
    浏览(52)
  • unity 编辑器时读取FairyGUI图集单个图像

    想要在编辑器扩展也能访问FairyGUI图集里面的小图,随便找了一下没有找到接口自己做一个 使用UIPackage.GetItemByURL获得小图信息。从图集中复制出小图,如果有旋转就逆旋转90度即可 图集里面的小图是有可能旋转的,可以通过访问 NTexture.rotated 判断在图集中是否旋转 X偏移坐标

    2024年02月09日
    浏览(54)
  • springboot读取yml文件中的list列表、数组、map集合和对象方法实例

    目录前言application.yml定义list集合application.yml定义数组类型总结 前言 springboot配置文件yml类型简单的风格,十分受大家的欢迎,支持字符string类型,支持列表list类型,支持集合map类型,支持数组array类型,支持类对象类型,下面我们来实战下这些形式的配置如何取值 applicatio

    2024年02月09日
    浏览(53)
  • go获取文件md5后接着读取file对象EOF的问题记录

    目录 背景 分析 第一步:读取文件,获得file对象 第二步:获取文件md5 第三步:获取到md5后继续使用(读取)file对象,发现一次就读完了(EOF),但实际一次不可能读完 代码如下: 如上代码中,在获得该文件的md5后,file对象此时已指向文件末尾,因此接着读取必然是EOF直接

    2024年01月19日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包