我从输入对象中收到错误,该错误通过... \ rpy2 \ robjects \ functions.py。具体做法是:
Traceback (most recent call last):
File "D:\Projects\Kaggle\UPenn_and_Mayo_Clinic_Seizure_Detection\Scripts\py_test01.py", line 174, in <module>
featureEEG = R_EEGA.FeatureEEG(data = time_series_object, classes_Id = classes_id_matrix, rec_Id = record_id_matrix)
File "C:\Python33\lib\site-packages\rpy2-2.3.8-py3.3-win32.egg\rpy2\robjects\functions.py", line 90, in __call__
return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "C:\Python33\lib\site-packages\rpy2-2.3.8-py3.3-win32.egg\rpy2\robjects\functions.py", line 39, in __call__
res = super(Function, self).__call__(*new_args, **new_kwargs)
rpy2.rinterface.RRuntimeError: Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
invalid 'trim' argument
我猜这个函数不喜欢发送给它的对象。仅供参考,请注意上面的行号,将一些 print()语句放入... \ function.py中以跟踪冒犯行所在的位置(因此它们与行号不对应)在未改变... \ function.py)。输入有问题的 ... \ function.py 代码行位于函数类对象的 __ call __ 函数中:
res = super(Function, self).__call__(*new_args, **new_kwargs)
res = conversion.ri2py(res) ### this is the error line ###
其中,
new_args = []
new_kwargs =
{'rec.Id': <Matrix - Python:0x0647C698 / R:0x08734740> [ 1, 1, 1, ..., 4, 4, 4],
'classes.Id': <Matrix - Python:0x0651B4B8 / R:0x08A0F1E8> [ 1, 1, 1, ..., 2, 2, 2],
'data': <Matrix Python:0x065228A0 / R:0x0D740008> [-42.880000, -48.880000, -70.880000, ..., -6.105000, -4.105000, -10.105000]}
上述矩阵是这行代码的输入:
featureEEG = R_EEGA.FeatureEEG(data = time_series_object, classes_Id = classes_id_matrix, rec_Id = record_id_matrix)
其中R_EEGA是R eegAnalysis包
知道如何正确运行吗?了解情况需要的任何其他代码?我能找到答案的任何建议吗?
谢谢
答案 0 :(得分:0)
trim
需要一个真正的TRUE
或FALSE
参数。 new_args
= []而不是有效参数的事实很可能是问题的原因。
在this thread中的不同上下文中发生了同样的错误。
答案 1 :(得分:0)
@NerdLife提供了解决错误的帮助:
rpy2.rinterface.RRuntimeError: Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L, :
invalid 'trim' argument
这种情况的解决方案是将'trim'添加为参数,如下所示:
featureEEG = R_EEGA.FeatureEEG(data = time_series_object,
classes_Id = classes_id_matrix,
rec_Id = record_id_matrix,
trim = R_base.logical(1 == 1)) ### added this last portion ###
现在,当代码运行时 - 使用'trim'= TRUE或'trim'= FALSE - 发生以下错误:
Traceback (most recent call last): File "D:\Projects\Kaggle\UPenn_and_Mayo_Clinic_Seizure_Detection\Scripts\py_test01.py",
line 177, in <module> trim = R_base.logical(1 == 1))
File "C:\Python33\lib\site-packages\rpy2-2.3.8-py3.3-win32.egg\rpy2\robjects\functions.py",
line 86, in __call__ return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "C:\Python33\lib\site-packages\rpy2-2.3.8-py3.3-win32.egg\rpy2\robjects\functions.py",
line 35, in __call__ res = super(Function, self).__call__(*new_args, **new_kwargs)
rpy2.rinterface.RRuntimeError: Error in (function (length = 0L) : invalid 'length' argument
由于这是新错误,我会为它创建一个新问题,并会尽快在此处发布链接。
感谢 NerdLife 帮助我摆脱'修剪'错误!
如果有人想要关注此主题的下一部分,则链接如下: https://stackoverflow.com/questions/24972783/rpy2-rinterface-rruntimeerror-error-in-function-length-0l-invalid-lengt