rpy2:incortrは.renvironで失敗します
質問
これが使用されるべきであり、使用するべきことは次のとおりです 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
ユーザーライブラリの場所を定義します(たとえば、場合、 ggplot2
libsは)、そして私はどちらのr-commandsに問題がありません library()
また require()
使用 R
と Rscript
. 。パスは次のようになります:
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を定期的に使用しているため、洞察は大歓迎です。
解決
デフォルトでは、RPY2は「Vanilla」モードで初期化されており、R_LibsやFriendsは無視されます。
>>> 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.
所属していません StackOverflow