3

rpy2.robjects.packages.importr基本Rパッケージ(例stats)を使用して、何が発生し、何が発生するかを次に示します。

>>> from rpy2.robjects.packages import importr
>>> importr('stats')
<rpy2.robjects.packages.SignatureTranslatedPackage object at 0x7f3810>

しかし、外部パッケージ(例ggplot2)を使用すると、次のようになります。

>>> importr('ggplot2')
Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called 'ggplot2'
Error in .Primitive("as.environment")("package:ggplot2") : 
  no item called "package:ggplot2" on the search list
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/7.0/lib/python2.7/site-packages/rpy2/robjects/packages.py", line 100, in importr
    env = _as_env(rinterface.StrSexpVector(['package:'+name, ]))
rpy2.rinterface.RRuntimeError: Error in .Primitive("as.environment")("package:ggplot2") : 
  no item called "package:ggplot2" on the search list

厄介なのは、ホームディレクトリに.Renvironユーザーライブラリの場所(たとえば、libsがある場所)を定義するファイルがあり、Rコマンドまたはandの使用ggplot2に問題がないことです。パスは次のようになります。library()require()RRscript

R_LIBS_USER="/path/to/my/packages"

だから私の質問は、「検索リスト」から除外された私のユーザーライブラリパスがなぜRpy2使用するのかということです。または、むしろ、パスRpy2を調べるように指示するにはどうすればよいですか?R_LIBS_USER

問題は環境Rpy2利用にあると思いますが、その点では無知が高いです。

R: 2.13.0
Platform: x86_64-apple-darwin9.8.0/x86_64 (Mac, 10.6, 64-bit)

で複製

Rpy2: 2.1.8, 2.2.1 (dev)

私はR、ggplot2、pythonを定期的に使用しているので、どんな洞察も大歓迎です。

4

1 に答える 1

2

デフォルトでは、rpy2は「バニラ」モードで初期化されており、これはR_LIBSとその仲間を無視します。

>>> import rpy2.rinterface 
>>> rpy2.rinterface.get_initoptions()
('rpy2', '--quiet', '--vanilla', '--no-save')
>>> 

'rinterface.set_initoptions()'を使用してそれらを変更できます。

例えば:

import rpy2.rinterface as ri
ri.set_initoptions(('rpy2', '--verbose', '--no-save'))
ri.initr()

# from now on, just import the rest of rpy2 modules without thinking of the above.
于 2011-06-16T17:20:33.910 に答える