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”,我没有遇到这个问题

版本:

  • 蟒蛇版本2.7.3
  • R 版本 2.15.2
  • rpy2版本'2.3.0beta1'

任何帮助将不胜感激

4

1 回答 1

5

Rpy2importr()正在尝试转换任何“。” 在 R 对象名称中为“_”以便与 Python 一起使用。

但是,只要有两个带有“。”的 R 对象名称。或“_”(这两个字符都对 R 中的名称有效) rpy2 报告错误。这里 R 包“xts”定义了两个对象.subset_xts.subset.xts. 解决方法是手动指定如何转换名称:

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

rpy2 文档中提供了有关导入 R 包的更多信息。

于 2012-11-30T18:38:53.380 回答