复旦高性能计算-七-python调用r.md 2.0 KB


title: 复旦高性能计算 (七) Python调用R tags: [] id: '1102' categories:

  • - 生物信息学
  • - 超算基础 date: 2021-10-22 20:47:24 ---

前置要求

第一步 安装rpy2

pip3.8 install rpy2 -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 查看rpy2的安装路径

    import sys
    sys.path
    
  • 配置环境变量 每次启动先运行

    import os
    os.environ['R_HOME'] = '/home/rqzhang/zlliu/dev/R/R_s/lib64/R' # R的安装后含SVN-REVISION的目录 非bin目录
    os.environ['R_USER'] = '/home/rqzhang/zlliu/dev/python38/lib/python3.8/site-packages/rpy2' # rpy2的安装目录
    

冷门编译好的python库

第二步 调用方法一(不推荐)

from rpy2.robjects import r as Rcode
from rpy2.robjects.packages import importr as Rrequire
Rrequire('ggplot2') # 导入R包
print(Rcode("pi")) # 运行R语句

#rx()相当于”[“操作(注意取出的是R的list对象),而rx2()相当于”[[“操作

pandas.py: Comparison with R / R libraries

第三步 调用方法二(推荐)

  • 开启 %R 支持

    %load_ext rpy2.ipython
    
  • 测试数据集

    import pandas as pd
    data = pd.DataFrame({'x':[1,2,3,4,5,6],'y':[1,2,3,4,5,6]})
    px = 1
    py = 2
    
  • cell内调用R

    %%R -i data -o colN
    require(ggplot2)
    colN = colnames(data)
    ggplot(data=data) + geom_point(aes(x=x,y=y))
    
  • 一行内调用R

    %R require(ggplot2)
    %R -i px,py
    z = %R px*py
    print(colN, z[0]
    

如何优雅地在Jupyter Notebook中同时运行R和IPython