python rpy2.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

 

posted @ 2023-11-11 22:18  yayagogogo  阅读(156)  评论(0编辑  收藏  举报