首页 > 编程语言 >python rpy2.robjects库总结

python rpy2.robjects库总结

时间:2023-11-11 22:36:26浏览次数:47  
标签:python py Python rpy2 example1 robjects

参考:https://rpy2.github.io/

介绍

rpy2是用C语言编写的,是嵌入在Python进程中的R运行接口。该包由几个子包或模块组成:

1)rpy2.rinterface: R的低级接口,当速度和灵活性最重要的时候。接近R的c级API。

2)rpy2.robjects: R的高级接口,注重易用性。更友好,使用更广泛。

3)rpy2.interactive:高级界面,着重于交互式工作。主要基于rpy2. objects。

4)rpy2.rlike:在纯Python中模仿R的一些特性和特性的数据结构和函数(没有嵌入式R进程)。

安装

1. rpy2的运行依赖于python和R,通过依赖环境推荐选择合适版本的python和R进行安装。

2. 将R共享库加入环境变量

vim ~/.bashrc
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/data/personal/name/R/x86_64-pc-linux-gnu-library/4.3/

 3. 配置R_HOME的环境变量(实际上我并没有进行这步操作也成功运行了)

R_HOME=/data/personal/name/R/x86_64-pc-linux-gnu-library/4.3/

4.安装rpy2

pip install rpy2

5.检查是否安装成功

>>> import rpy2
>>> print(rpy2.__version__)
3.5.14

rpy2.robjects示例

rpy2.robjects的目的是抽象一些细节,并为Python和R程序员提供一个直观的界面。

  • 现有一个example1.py脚本内容如下:
import rpy2.robjects as robjects

# 设置Python变量
a = "./sequence.tsv"

# 将Python变量传递给R
robjects.r.assign('a', a)

# 加载R的脚本
robjects.r.source('test.R')

# 获取R脚本生成的变量b
b = robjects.r['b'][0]

# 打印结果
print(f"The value of b from R is: {b}")
  •  example1.py脚本中执行的test.R内容如下:
b <- paste(a, a)
  • 将example1.py和test.R放到同一目录下,执行如下命令:
python example1.py
  • 输出结果:
The value of b from R is: ./sequence.tsv ./sequence.tsv

 

标签:python,py,Python,rpy2,example1,robjects
From: https://www.cnblogs.com/chaimy/p/17824135.html

相关文章

  • pythonDay10
    X模式,是只写模式,文件存在时则会报错,文件不存在则创建文件换行:r\  n\b模式案例及循环补充 flush刷新,只出现在测试场景 文件指针移动 ......
  • 【Python | 虚拟环境】Python创建虚拟环境哪些事,一文打通脉络,确定不来看看?
    ......
  • python中包管理工具pip以及虚拟环境venv的使用
    1.pip命令查看已安装的包piplist安装包pipinstallpackage_name卸载包#卸载指定包pipuninstallpackage_name#卸载已安装的所有第三方Python库pipfreeze>list.txtpipuninstall-rlist.txt-y导出已安装的包pipfreeze>requirements.txt配置全局默......
  • Python 数据解析:从基础到高级技巧
    导言:Python作为一门强大的编程语言,不仅在Web开发、数据分析和人工智能领域有广泛的应用,还在数据解析方面具有强大的能力。数据解析是从结构化或非结构化数据源中提取有用信息的过程,通常在数据清洗、数据分析和可视化之前进行。本文将深入探讨Python在数据解析中的应用,从基础知识到......
  • wechaty撸一个属于自己的微信机器人(Python版接入文心一言)
    前言说明:机器人的框架找了很久,由于很多框架都不能使用了或者封号率极高,最后选择了wewechaty,wechaty是可以使用ipad协议,主要是以node写的,因为打算机器人接入爬虫项目,所以特意用了python版本,对于python版网上教程太少且模糊且时间过于久远,所做以此文为采坑记录。前期准备:tok......
  • tensorflow版本与CUDA、cuDNN、Python适配表
    从源代码构建 | TensorFlow(google.cn)......
  • python 执行脚本,并将输出打印到文件
    转载请注明出处:在使用python直接执行脚本时,执行的相关输出会打印到当前的控制台,如果想输出到指定的文件,可以采用以下几种方式:1.在启动时,使用>操作符,该操作符会将输出写入到指定文件,并覆盖原来文件内容如创建一个python脚本,内容如下:print("Thisisatest......
  • SMOGN算法的Python实现:不平衡数据的深度学习回归
      本文介绍基于Python语言中的smogn包,读取.csv格式的Excel表格文件,实现SMOGN算法,对机器学习、深度学习回归中,训练数据集不平衡的情况加以解决的具体方法。  在不平衡回归问题中,样本数量的不均衡性可能导致模型在预测较少类别的样本时表现较差;为了解决这个问题,可以使用SMOTE(Syn......
  • python 编程模拟题(一)
    python编程模拟题,要求:源代码可以拍照发给老师,也可以手抄带过来。可以参考之前自己的代码或语法,也可以参考地址的语法讲解:https://www.runoob.com/python/python-basic-syntax.html 1.  获得用户输入的一个字符串,将字符串逆序输出,同时紧接着输出该字符串所包含字符......
  • python题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个
    程序分析:无。实例(Python2.0+)#!/usr/bin/python#-*-coding:UTF-8-*-if__name__=='__main__':i=0j=1x=0while(i<5):x=4*jforiinrange(0,5):if(x%4!=0):breakelse:i......