我正在R中运行模拟研究。有时,我的模拟研究会产生错误消息。当我在函数中实现仿真研究时,发生此错误消息时,仿真将停止。我知道抑制错误是一种不好的做法,但是对我而言,目前没有别的选择,只能抑制错误,然后继续进行下一个模拟,直到我希望运行的模拟总数为止。为此,我必须禁止显示R产生的错误消息。
为此,我尝试了不同的方法:
library(base64)
suppressWarnings
suppressMessages
options(error = expression(NULL))
在前两个选项中,仅警告和消息被覆盖,因此无济于事。如果我理解正确,则在最后一种情况下,应避免所有错误消息。但是,这样做无济于事,该功能仍会停止并显示一条错误消息。
有人知道为什么这不能像我期望的那样起作用吗?我在互联网上搜索解决方案,但只能找到上述方法。
在运行仿真的功能中,部分代码由外部程序JAGS(Gibbs采样器)进行分析,并通过此分析生成错误消息。这可能是哪里出错了吗?
请注意,由于不必生成任何其他错误消息,因此我不必限制某个/特定的错误消息,因此“仅够限制所有错误消息”的选项就足够了。
感谢您的时间和帮助!
最佳答案
抑制消息和抑制对错误的响应之间有很大的不同。如果某个函数无法完成其任务,则它必然会返回一个错误(尽管某些函数具有命令行参数,以便在出错时采取其他措施)。正如Zoonekynd所建议的那样,您需要使用try
或trycatch
来“封装”错误,以便即使函数失败,您的主程序流程也可以继续。
关于r - 抑制R中的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19111956/