rpy2 动物园未使用的参数

rpy2 zoo unused argument

我最近一直在尝试使用 rpy2 并将动物园库导入 python。 但是,当我 运行 以下几组代码时,我收到以下错误

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.robjects.packages 中的导入器时,它会自动将 Rlang 中的 '.' 转换为 python 中的 '_'

解决该问题的两种方法:

  • 使用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