2012-11-30 45 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