对于生物信息分析工程师而言,R和Python是很好的一对配套工具,常有人称左手R右手Python,它们有很多相似之处,二者也可以相互调用,编写脚本流程时非常方便。以下是R和Python相互调用的方法总结。
一、Python调用R
1. python模块rpy2
2. 安装方法:
(1)在Linux系统安装
pip install rpy2或者conda install rpy2(已经安装了Anaconda或Miniconda)
查看是否安装成功
# 进入python环境
python
# 导入模块
import rpy2
(2)在Window10系统安装
快捷键Win+R进入cmd,查看是否有pip工具:pip -V
如果有直接pip install rpy2
3. 使用方法
# 导入python模块:rpy2
import rpy2.robjects as robjects
# 用python语句调用R代码
robjects.r("r_script")
# 用python语句调用R脚本
robjects.r.source("plotting.R")
python调用R脚本,举例如下:
#!/usr/bin/python
import rpy2.robjects as robjects
robjects.r("getwd()")
robjects.r.source("plotting_v5.R")
robjects.r("sessionInfo()")
二、R调用Python
1. R包:reticulate
2. 安装方法
(1)在Linux中
# 输入R,进入R命令控制台
R
# 执行安装函数
Install.packages("reticulate")
# 检查是否安装成功
library("reticulate")
(2)在window中
打开R或Rstudio软件
输入命令控制台以下脚本:install.packages("reticulate")
安装完成后,导入该R包
library("reticulate")
3. 使用方法
(1)导入R包
library(reticulate)
(2)Python Packages
py_install("pandas")
(3)导入Python模块
difflib <- import("difflib") difflib$ndiff(foo, bar)
filecmp <- import("filecmp") filecmp$cmp(dir1, dir2)
(4)执行命令脚本
source_python('add.py')
(5)脚本执行
py_run_file("script.py")
py_run_string("x = 10")
(6)获取帮助
os <- import("os")
py_help(os$chdir)
R包reticulate的功能比较多,本次只涉及点皮毛,详细内容请查看rpy2和reticulate的官方帮助文档,rpy2模块适合python简单调用R函数语句和脚本,reticulate包适合R调用Python模块、语句等等,二者组合更强大。