2010-11-11 53 views
4

如何识别所有库Rpy2 R.如何识别所有库Rpy2 R

Rpy2不识别库,utils和工具。

import rpy2.robjects as robjects 

R = robjects.r 

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

RVector - Python:0x7f65fc85cfc8/R:0x19bb980 

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

RVector - Python:0x7f65fc85f5a8/R:0x2419140 

(>>>从rpy2.robjects.packages导入importr 回溯(最近通话最后一个): 文件 “”,1号线,在 导入错误:没有模块名为包 )

因为我可以更新Rpy2来加载所有没有问题的库或可以完成的R。

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

感谢您的回答

回答

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> 

我不知道你想要做什么,因为这些库应该没有任何额外的进口工作,因为加文提及。

+0

谢谢,我尝试sudo easy_install -U rpy2,Rpy2它的工作 – ricardo 2010-11-11 19:24:26

+1

您可能需要考虑存储由importr()返回的对象(例如,utils = importr('utils'))。该对象类似于模块,并用额外的细节包装R对象(在名称中用'_'替换'。',包括函数的参数名称) – lgautier 2010-11-12 18:31:14

1

除非我错了 - 我不使用Rpy2 - 这些包(它们是库由方式)在R启动时自动加载;你不需要做任何事情来利用它们。在R启动期间,这些软件包中的所有用户可见功能都可用。

此外,您无法更新这些软件包 - 它们是R.您只会在更新R本身时获得更新。在这里,他们不同于推荐的软件包(如nlme,mgcv,MASS等),它们也在CRAN上,并且在R版本更新之间更新频繁。