我将在R中使用Reticulate包创建一个python接口。为了访问R中的python函数,需要安装相应的python包。
我想到了两个问题:
1)如果使用网状包,是否需要安装Anaconda包?或者仅仅安装python包就足够了吗?
2)是否可以在R中安装python包,类似于install.packages(“r_package”)?
有没有人有过这个主题的经验?提前谢谢!
答案 0 :(得分:4)
1)R包reticulate
可以使用默认的python或Anaconda2
或Anaconda3
。如果你想让Anaconda与R合作,你必须先安装Anaconda。安装完成后,您调用library(reticulate)
,然后运行py_config()
或reticulate::py_discover_config()
,这将为您提供Python安装所使用的路径和环境列表。然后,一旦您了解了Python路径,就可以在use_python("/opt/miniconda2/bin/python")
之后添加一行,如library(reticulate)
,并且您正在开展业务。
2)安装Python包以便R(或网状)可以看到它们,你必须从终端或控制台将它们安装为常规Python包;不是R.示例:conda install numpy
安装numpy,或conda install scipy
安装scipy,依此类推。
我只是在Docker容器rocker/rstudio
中完成所有这些操作。在标准操作系统中应该更容易。
以下是分步说明:rstudio reticulate
干杯!
答案 1 :(得分:3)
我将在前面的答案中添加一些细微差别。
就像@ f0nzie一样,Anaconda不是包,而是包管理器。理想情况下,您将使用Anaconda创建一个环境,以帮助您进行程序包管理和版本控制。有关conda环境的文档为here。
现在,您可以将Python软件包安装到R中的anaconda软件包中。可以使用reticulate::conda_install(envname, packages)
。 here可以找到conda_install()
的文档。
答案 2 :(得分:0)
如果您需要特定版本的Python模块,则在模块名称后放置==
,例如以下将使用pip安装3个模块的特定版本:
reticulate::conda_install(c("PyMuPDF==1.14.20", "PyPDF2==1.26.0", "reportlab==3.5.23"),
envname = "myenv", pip = TRUE)