3

私はrpy2を初めて使用し、importrを使用してRパッケージ「xts」および「quantmod」をインポートするのに問題があります。

コードは次のとおりです。

from rpy2.robjects.packages import importr
xts = importr('xts')
quantmod = importr('quantmod')

エラーは次のとおりです。

LibraryError: Conflict when converting R symbol in the package "xts" to a Python symbol (.subset.xts -> _subset_xts while there is already _subset_xts)

LibraryError: Conflict when converting R symbol in the package "quantmod" to a Python symbol (skeleton.TA -> skeleton_TA while there is already skeleton_TA)

'stats'、'graphics'、'zoo'、'ggplot2'など、他の多くのパッケージにインポーターを使用しても、この問題は発生しません。

バージョン:

  • Pythonバージョン2.7.3
  • Rバージョン2.15.2
  • rpy2バージョン'2.3.0beta1'

どんな助けでも大歓迎です

4

1 に答える 1

5

Rpy2importr()は任意の "." を変換しようとしています。Python で使用するために、R オブジェクト名を "_" に変更します。

ただし、「.」を含む R オブジェクト名が 2 つある場合は常に、または "_" (両方の文字が R の名前として有効です) rpy2 がエラーを報告しています。ここで、R パッケージ "xts" は 2 つのオブジェクト.subset_xtsと を定義しています.subset.xts。回避策は、名前の変換方法を手動で指定することです。

from rpy2.robjects.packages import import
xts = importr("xts", robject_translations = {".subset.xts": "_subset_xts2", 
                                             "to.period": "to_period2"})

R パッケージのインポートについては、rpy2 のドキュメントを参照してください。

于 2012-11-30T18:38:53.380 に答える