Ric*_*son 9 python import r package
我R在我的Python脚本中通过rpy2库使用,我需要一个不在R的默认安装中的软件包.我该如何安装它?
install.packages("DirichletReg", repos="http://r-forge.r-project.org")
Run Code Online (Sandbox Code Playgroud)
不行.
在Python上:
>>> install.packages("DirichletReg", repos="http://r-forge.r-project.org")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'install' is not defined
Run Code Online (Sandbox Code Playgroud)
来自R:
> install.packages("DirichletReg", repos="http://r-forge.r-project.org")
Installing package(s) into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning message:
In getDependencies(pkgs, dependencies, available, lib) :
package ‘DirichletReg’ is not available (for R version 2.14.1)
Run Code Online (Sandbox Code Playgroud)
Aar*_*all 36
里卡多的回答不再适用.
要从Python安装:
from rpy2.robjects.packages import importr
utils = importr('utils')
utils.install_packages('DirichletReg')
Run Code Online (Sandbox Code Playgroud)
该utils软件包是R.utils其文档可在此处找到的软件包:https://CRAN.R-project.org/package=R.utils
截至我上次编辑时,文档仍然说要执行此操作.
小智 5
运行时pytest,Aaron 的回答使我的 Python 挂起,R 不断给出错误消息,可能是因为:
在
install_packages()没有先选择镜像的情况下调用将需要用户交互地选择镜像。
根据rpy2 文档,我使用了这个有效的方法:
from rpy2 import robjects
import rpy2.robjects.packages as rpackages
utils = rpackages.importr('utils')
utils.chooseCRANmirror(ind=1)
utils.install_packages("DirichletReg")
DirichletReg = rpackages.importr("DirichletReg")
Run Code Online (Sandbox Code Playgroud)
Ric*_*mil -4
这个怎么样
>>> import rpy2.interactive as r
>>> r.importr("utils")
>>> package_name = "DirichletReg"
>>> r.packages.utils.install_packages(package_name)
Run Code Online (Sandbox Code Playgroud)