如何识别所有Rpy2 R库
如何让Rpy2识别所有的R库。
Rpy2没有识别到utils和tools这些库。
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 追踪(最近的调用最后): 文件 "", 第1行,在 ImportError: 没有名为packages的模块 )
我该如何更新Rpy2,以便能够顺利加载所有库,或者有什么其他方法可以做到。
附注:我在ubuntu上使用的是R 2.10和python 2.6。
2 个回答
1
如果我没记错的话——我不使用Rpy2——这些包(顺便说一下,它们不是库)在你启动R的时候会自动加载;你不需要做其他任何事情就可以使用它们。在R启动时,所有用户可以看到的功能都会被提供。
另外,你不能单独更新这些包——它们就是R的一部分。只有当你更新R本身的时候,才会得到更新。这样它们和一些推荐的包(比如nlme、mgcv、MASS等)不同,这些推荐包也在CRAN上,并且在R版本更新之间会更频繁地更新。
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提到的那样。