python - rpy2 找不到已安装的外部 R 包

标签 python r rpy2

我以前做过这个(大约一年前),但想通过 rpy2 再次使用 R。我已确认执行此操作时可以加载默认包:

from rpy2 import robjects
plot = robjects.r.get('plot')

现在,当我尝试像这样加载外部包时,

from rpy2.robjects.packages import importr
betareg = importr('betareg')

我收到以下错误:

Traceback (most recent call last):

  File "<ipython-input-1-b1ed20534ab9>", line 1, in <module>
    runfile('C:/Users/Patrick/OneDrive/FIDS/betareg.py', wdir='C:/Users/Patrick/OneDrive/FIDS')

  File "C:\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile
    execfile(filename, namespace)

  File "C:\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 71, in execfile
    exec(compile(scripttext, filename, 'exec'), glob, loc)

  File "C:/Users/Patrick/OneDrive/FIDS/betareg.py", line 11, in <module>
    betareg = importr('betareg')

  File "C:\Anaconda\lib\site-packages\rpy2\robjects\packages.py", line 438, in importr
    env = _get_namespace(rname)

RRuntimeError: Error in loadNamespace(name) : there is no package called 'betareg'

我设置了R_HOMER_USERR_LIBS系统变量,以确保R被加载并(希望)被指向外部包位于。当我将 importr 中的 lib_loc kwarg 设置为包文件夹的路径时,也会发生同样的情况。我可以通过 R 中的 library('betareg') 从命令行加载包,并使用 r2py 正在使用的相同运行参数(--quiet、--no-save)。

我在这里遗漏了什么吗?如何设置才能加载已安装的外部软件包?

版本信息

操作系统:

Microsoft Windows [Version 10.0.10240]

Python 版本:

Python 2.7.10 |Anaconda 2.3.0 (64-bit)| (default, May 28 2015, 16:44:52)
[MSC v.1500 64 bit (AMD64)] on win32

R 版本:

R version 3.2.0 (2015-04-16) -- "Full of Ingredients"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

rpy2版本:

>>>import rpy2
>>> rpy2.__version__
'2.6.3'

最佳答案

要在 Conda 中使用外部 R 软件包,您需要在 Conda 中安装这些软件包。如果您从 R 安装它们,则无法使用它们。要安装(例如 dtw 库),请执行以下操作:

import rpy2.robjects.packages as r
utils = r.importr("utils")
package_name = "dtw"
utils.install_packages(package_name)

输出是:

rpy2.rinterface.NULL

然后就可以使用这个包了

import rpy2.robjects.numpy2ri
from rpy2.robjects.packages import importr
rpy2.robjects.numpy2ri.activate()

# Set up our R namespaces
R = rpy2.robjects.r

DTW = importr('dtw')   # our package

关于python - rpy2 找不到已安装的外部 R 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32983365/

相关文章:

python - 在 Python 中为日期添加时间

python - 使用 boto 在 amazon mechanical turk 中将 HIT 分组?

python - 安装 rpy2 返回错误

python - 如何将 R 的 .rdata 文件加载到 Python 中?

python - 我可以在 OpenCV 中为 Otsu 阈值添加偏差吗?

python - "ŞÜÖ"是 6 个字符长

r - 将用户在 rcpp 中创建的 C++ 函数作为参数传递

r - 在 r 中创建带有时间刻度和标签的线图

r - 循环数据以将值 > 或 < 变量设置为 R 中的 NA

python - 如何在通过 rpy 将 SPSS 文件(.sav)导入 pandas 时保留标签?