陷阱rpy2中的R错误

时间:2013-03-19 21:46:59

标签: r exception-handling rpy2

当我使用RStudio时,我可以在运行函数时看到任何错误或警告。

但是当我使用rpy2时,如何捕获警告(允许代码运行)和错误(停止代码),以便我可以在python中以编程方式解析消息?

1 个答案:

答案 0 :(得分:2)

在R-3.0(当前未发布)之前,默认情况下会向控制台输出警告。 从R-3-0开始,它们不再被打印,因为R开发人员使之前使用的C函数隐藏(并且太忙而无法记录原因并告诉我们是否可以返回该功能)。

要将警告作为rpy2对象获取,您可以执行以下操作:

from rpy2.robjects.packages import importr
base = importr('base')
# do things that generate R warnings
base.warnings()

评估R代码时发生的错误会引发rpy2.rinterface.RRuntimeError。抓住那些。