Python 클래스는 rpy2를 통해 R 함수를 실행하며 R 함수가 오류를 생성하는 경우 R에서 추적을 캡처 할 수 있기를 원합니다.RRuntimeError가 발생했을 때 R에서 추적 추적 캡처
R 코드는 레거시이므로 수정하는 것은 매우 위험 할 수 있습니다. 나는 파이썬 측면에서 뭔가를하는 것을 선호한다.
from rpy2.rinterface import RRuntimeError
from rpy2.robjects import DataFrame
from rpy2.robjects.packages import InstalledPackage
class RAdapter(BaseRAdapter):
_module = None # type: InstalledPackage
def call_raw(self, function_name, *args, **kwargs):
# type: (str, tuple, dict) -> DataFrame
"""
Invokes an R function and returns the result as a DataFrame.
"""
try:
return getattr(self._module, function_name)(*args, **kwargs)
except RRuntimeError as e:
# :todo: Capture traceback from R and attach to `e`.
e.context = {'r_traceback': '???'}
raise
...
어떻게 그렇게는 R 기능이 오류가 발생하는 경우에 R의 역 추적을 캡처하는 call_raw
을 수정해야합니다 :
다음은 파이썬 코드가 현재의 모습입니까?
설명해 주셔서 감사합니다! 후속 조치를 위해 [rpy2 repo에 관한 문제] (https://bitbucket.org/rpy2/rpy2/issues/380/valueerror-when-getting-repr-of-a-pairlist)를 기록했습니다. – user5568265