如何识别所有的Rpy2 R库?

4

如何让Rpy2 R识别所有库。

Rpy2无法识别库、工具和实用程序。

import rpy2.robjects as robjects

R = robjects.r  

>>> R['library']("utils")

RVector - Python:0x7f65fc85cfc8 / R:0x19bb980

>>> R['library']("tools")

RVector - Python:0x7f65fc85f5a8 / R:0x2419140

(>>> from rpy2.robjects.packages import importr Traceback (most recent call last): File "", line 1, in ImportError: No module named packages )

我想知道如何更新Rpy2以便无问题地加载所有库,或者可以通过R来完成。

PS:我在Ubuntu上使用R 2.10和Python 2.6。

2个回答

4

为了让importr命令正常工作,您可能需要升级rpy2版本--请尝试检查您的版本:

print rpy2.__version__

我认为您需要使用2.1.0或更高版本。以下内容在2.1.7下可行,但在2.0.3下无法实现:

In [1]: import rpy2.robjects as robjects

In [2]: R = robjects.r  

In [3]: from rpy2.robjects.packages import importr

In [4]: importr("utils")
Out[4]: <rpy2.robjects.packages.SignatureTranslatedPackage object at 0x1e96310>

我不确定你想做什么,因为这些库应该可以在没有任何额外导入的情况下工作,就像Gavin所提到的那样。


1
你可能需要考虑存储由importr()返回的对象(例如,utils = importr('utils'))。该对象类似于模块,并使用额外的便利包装R对象(名称中的“.”替换为“_”,包括函数的参数名称)。 - lgautier

1

除非我弄错了 - 我不使用Rpy2 - 这些包(顺便说一下,它们不是库)在启动R时会自动加载;您无需执行其他操作即可使用这些包中的所有用户可见函数。

此外,您无法更新这些包 - 它们就是R。只有在更新R本身时才会获得更新。在这方面,它们与推荐的包(如nlme、mgcv、MASS等)不同,后者也在CRAN上,并且在R版本更新之间更经常更新。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接