在R大声嘈杂的错误

Pra*_*tic 8 r

R似乎对错误处理采取了非常自由放任的立场,行为类似于大多数shell脚本语言.最重要的是,R倾向于在终端上打印大量无害的文本.这使得错误很容易被忽视.不止一次,我有一个脚本在早期产生错误,然后愉快地传播NaNs通过其余的计算.只有经过一段时间的奇怪结果后,我才意识到发生了什么.

经验丰富的R用户如何处理这个问题?有没有办法让错误致命或至少更明显?

jor*_*ran 2

我知道有些人做的一件事就是运行 R,并将所有警告设置为抛出错误:

options(warn = 2)
> x <- "a"
> as.numeric(x)
Error: (converted from warning) NAs introduced by coercion
> sqrt(-1)
Error in sqrt(-1) : (converted from warning) NaNs produced
Run Code Online (Sandbox Code Playgroud)

显然,这在一定程度上是品味问题。但您应该意识到,采用这种方法还将包括来自包的所有警告,其中作者可能或可能没有对应该生成警告的内容有合理的定义。因此,您可能会遇到生成大量您实际上并不关心的警告的代码。

然后,您必须转向包装表达式,以suppressWarnings明确地静默您认为不重要的表达式。