2017-04-04 77 views
1

我最近試圖使用rpy2並將動物園庫導入python。 然而,當我運行下面的代碼集,我收到以下錯誤rpy2動物園未使用的參數

from rpy2.robjects.packages import importr 
r_zoo = importr("zoo") 
r_zoo.rollapply(ddf,FUN = r_func.fun1, width = 10, align = "left",by_column = True) 

res = super(Function, self).call(*new_args, **new_kwargs) rpy2.rinterface.RRuntimeError: Error in FUN(data[posns], ...) : unused argument (by_column = TRUE)

等效R代碼裏面是

rollapply(ddf,FUN = r_func.fun1, width = 10, align = "left",by.column = True) 

我明白,當我們使用rpy2的importr。 robjects.packages會自動將Rlang中的'.'轉換爲python中的'_'

回答

0

兩種方式來解決這個問題:

  • 使用kwargs字典

    r_zoo.rollapply(ddf,FUN = r_func.fun1, width = 10, align = "left",**{"by.column":True}) 
    
  • 明確指定by_column是被翻譯成by.column

    from rpy2.robjects.functions import SignatureTranslatedFunction` 
    r_zoo.rollapply = SignatureTranslatedFunction(r_zoo.rollapply, init_prm_translate = {'by_column': 'by.column'}) 
    

Source