最全面教程!在 R 语言中使用 python 与 conda(reticulate包)

reticulate 是一个在R语言中访问Python的强大工具。它允许R用户直接调用Pytho中的代码、函数和模块,以及在R环境中与Python进行无缝交互。

图片

reticulate的主要功能包括:

  1. 调用Python: reticulate 允许用户在R中直接调用Python代码和函数。无论是在R Markdown文档中、源Python脚本,还是在R控制台中,都可以方便地执行Python代码。

  2. 对象转换: 它支持在R和Python对象之间进行转换,例如将R数据框转换为Python的Pandas数据框,或将R矩阵转换为Python的NumPy数组,让用户可以在两种语言之间无缝传递数据。

  3. 灵活绑定Python环境: reticulate 可以与不同版本的Python解释器以及虚拟环境(如Conda环境)进行灵活绑定,使用户能够轻松地管理和使用特定的Python环境。

  4. 无缝互操作性: 通过在R中嵌入一个Python会话,reticulate 实现了高效的互操作性,为那些需要同时使用R和Python的数据科学家和开发人员提供了极大的便利。

一、R包安装

CRAN已于2018年3月21日收录reticulat包,可以通过最常用的安装命令安装此包:

install.packages("reticulate") # 安装reticulate包
library(reticulate)  # 安装后需要引用才可进行使用

二、进行conda环境管理

命令非常多,我选几个使用的介绍给各位铁子,有更多需求可以去看看官方文档。

1. 查看当前可用conda环境

可以看到我目前总共有8个环境:

conda_list()
#               name
#1              base
#2              R
#3             env
#4       build-tools
#5        nanopolish
#6            python3
#7            rna-seq
#8          cellranger
2.使用reticulate指定Conda环境

如前所述,reticulat可以指定使用特定的conda环境:

# 启用conda base环境
use_condaenv("base", required = TRUE)

# 启用python3命名的conda环境,不了解conda的铁子建议用之前最好先看看conda的原理
use_condaenv("python3", required = TRUE)
3.在指定conda环境安装软件包
# 在名为 "env" 的 Conda 环境中安装 nanopolish
conda_install(
  packages = c("nanopolish"),
  envname = "env"
)
4.甚至可以直接创建或删除conda环境
# 创建名为 "newenv" 的 Conda 环境
conda_create(
  envname = "newenv",  # 设置新环境的名称为 "newenv"
  packages = c("numpy", "pandas"),  # 指定需要安装的软件包列表
  python = "3.8"  # 指定 Python 版本为 3.8
)

# 移除名为 "env" 的 Conda 环境
conda_remove(envname = "env")
5.更多命令
conda_clone() # 克隆已存在的 Conda 环境,创建一个具有相同包配置的新环境。
conda_export() # 将 Conda 环境中的包信息导出到 YAML 文件,方便共享和复制环境配置。
conda_version() # 返回当前安装的 Conda 版本信息。
conda_update() # 更新 Conda 管理的所有软件包及其依赖项到最新版本。
conda_python() # 返回当前 Conda 环境中的 Python 版本信息。
conda_search() # 在 Conda 仓库中搜索符合条件的软件包。
condaenv_exists() # 检查指定名称的 Conda 环境是否存在。

三、调用python包

感谢作者的包装和设计,使得reticulate调用python的方式并不复杂。不过需要提醒一下,在一次R会话中,一旦Python解释器被启动,就不能更改了。

1.安装Python库

在base中安装pandas库:

py_install(packages = "pandas", envname = "base")
2.运行python命令或脚本

运行python命令(其它同理):

py_run_string("print('Hellow world')")
# Hellow world

运行python脚本 script.py

py_run_file("script.py")
3.导入自定义python函数

可以在R中导出预先写好的python脚本函数:

source_python("sum.py")
# sum里面可以有你自定义的python函数,这样就可以在R语言中使用
4.调用Python函数和访问变量

可以使用定义的python对象,通过”$“符号调用函数和访问变量:

# 将python_variable变量赋值为43
r_variable <- 42
py_run_string("python_variable = r_variable")

# R中使用os库的模块
os <- import("os")  # 导入python库
os$getcwd()         # 引用os的getcwd模块函数,获得当前工作目录
5.检查当前python环境

可以检查当前使用的Python环境是否正确:

py_config()

更多使用介绍可以查看官方文档:https://rstudio.github.io/reticulate/index.html

就分享到这里了!

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值