2017-04-04 1 views
1

J'ai récemment essayé d'utiliser rpy2 et d'importer la bibliothèque de zoo dans python. cependant, quand je lance les jeux de code ci-dessous, je reçois l'erreur suivanterpy2 zoo argument non utilisé

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)

Le code équivalent r est

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

Je comprends que lorsque nous utilisons le importr de rpy2. robjects.packages convertit automatiquement le '.' en Rlang en '_' en python.

Répondre

0

Deux façons de contourner ce problème:

  • Utilisez un kwargs dict

    r_zoo.rollapply(ddf,FUN = r_func.fun1, width = 10, align = "left",**{"by.column":True}) 
    
  • expressis verbis by_column doit être traduit by.column

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

Source