使用reticulate在R中调用python
2019-07-29 本文已影响40人
nnlrl
1 介绍
该包提供了一套全面的工具,可以实现R与python的相互切换:
-
从R以多种方式调用Python,包括R Markdown,获取Python脚本,导入Python模块,以及在R会话中以交互方式使用Python。
-
R和Python对象之间的转换(例如,在R和Pandas数据框之间,或在R矩阵和NumPy数组之间)。
-
灵活地绑定到不同版本的Python,包括虚拟环境和Conda环境。
Reticulate在R中嵌入Python,实现无缝,高性能的互操作性。不仅可以在R studio中调用python,还支持指定python版本,conda环境导入你想要的模块实现R与python的合作
2 函数介绍
#加载包
library(reticulate)
#查看是否安装python
py_available()
[1] TRUE
#查看python路径
Sys.which("python")
"D:\\ProgramData\\Anaconda21\\python.exe"
##这里我使用的conda,所以指定conda中的python
#创建conda环境
conda_create(envname='r-reticulate',conda = "auto",packages = "python")
##envname指定创建环境的名称,conda指定conda可执行文件的路径,packages指定要安装或删除的包名称
#指定python路径
use_python('/your path/',required = T)
#指定环境路径
use_virtualenv("/your path/",required = T)
#安装模块
py_install("packages", envname = "r-reticulate", method="auto")
conda_install(envname = NULL, packages, forge = TRUE, pip = FALSE,pip_ignore_installed = TRUE, conda = "auto", python_version = NULL)
##使用conda安装,也可也使用pip参数指定pip安装,还可以指定python版本,conda环境名称,路径以及其他功能
#查看模块是否安装成功
py_module_available("packages")
##返回T or F
或者我们可以在cmd
或者Unix
终端首先建立好conda环境,一个python2一个python3互不干扰
conda create -n r-reticulate python=2/3
之后在安装模块时只需要调用特定的conda环境就可以进行安装
use_condaenv("r-reticulate")
conda_install(envname = 'r-reticulate', 'packages', forge = TRUE, pip = T)
reticulate
不仅可以方便在R中安装并调用python模块,还支持交互使用python
repl_python()
##进入python命令,可以在R studio中交互使用python
当调用Python时,R数据类型会自动转换为它们等效的Python类型。 当值从Python返回到R时,它们会被转换回R类型。
数据类型互通