R 包 Rssa 未使用 rpy2 importr 导入到 python

R packages Rssa is not imported to python with rpy2 importr

当我在 Python 命令中执行时

rssa = importr('Rssa')

我得到了 eroor

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    rssa = importr('Rssa')
  File "C:\Python34\lib\site-packages\rpy2\robjects\packages.py", line 412, in importr
    version = version)
  File "C:\Python34\lib\site-packages\rpy2\robjects\packages.py", line 178, in __init__
    self.__fill_rpy2r__(on_conflict = on_conflict)
  File "C:\Python34\lib\site-packages\rpy2\robjects\packages.py", line 280, in __fill_rpy2r__
    super(SignatureTranslatedPackage, self).__fill_rpy2r__(on_conflict = on_conflict)
  File "C:\Python34\lib\site-packages\rpy2\robjects\packages.py", line 233, in __fill_rpy2r__
    rpyobj = conversion.ri2ro(riobj)
  File "C:\Python34\lib\functools.py", line 707, in wrapper
    return dispatch(args[0].__class__)(*args, **kw)
  File "C:\Python34\lib\site-packages\rpy2\robjects\__init__.py", line 101, in _
    return SignatureTranslatedFunction(obj)
  File "C:\Python34\lib\site-packages\rpy2\robjects\functions.py", line 150, in __init__
    raise ValueError("Error: '%s' already in the translation table. This means that the signature of the R function contains the parameters '%s' and/or '%s' <sigh> in multiple copies." %(r_param, r_param, prm_translate[py_param]))
ValueError: Error: '...' already in the translation table. This means that the signature of the R function contains the parameters '...' and/or '...' <sigh> in multiple copies.

其他包导入没有问题,例如

stats = importr('stats')
tseries = importr('tseries')
forecast = importr('forecast')

我一直在寻找这样的问题,但我找不到任何接近的东西。请就此问题提出一些决定。

这是由 Rssa 试图控制 'decompose' 函数(从 'stats' 包导出)时的错误引起的。特别是,在正式列表中,“...”被添加了两次,这就是 rpy2 所抱怨的。

这将在后续的 Rssa 版本中得到修复。

唯一的解决方法是在 R/common.R 中注释掉以下行:

formals(decompose.default) <- c(formals(decompose.default), alist(... = ))

并从源代码重新安装 Rssa。这在 Windows 上可能很重要,尽管 R windows builder 可以在这里提供帮助。