2012-11-30 47 views
3

我是新来rpy2和使用importr导入时遇到麻烦的R程序包 'XTS' 和 'quantmod'rpy2 importr与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) 

我没有得到这个问题,使用进口商的许多其他包,例如'统计', '图形', '动物园', 'GGPLOT2'

版本:

  • 蟒版本2.7.3
  • ř版本2.15.2
  • rpy2版本 '2.3.0beta1'

任何帮助,将不胜感激

回答

5

Rpy2的importr()正试图将任何 “”在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文档有关importing R packages可用。

+0

太棒了!工作完美,谢谢 – PHC

+1

令人惊讶的是,这也发生(对我来说至少)导入'stats'时。我不得不将'format.perc'重新转换为默认值以外的内容,因为'format_perc'也存在。 – LondonRob