参考: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