有没有办法暂时禁用R中的错误回溯存储(对于会话)?
我问的原因是ggplot2有long-running problem,他们无法修复。不知何故,整个数据集都存储在回溯中,如果使用非常大的数据集,这意味着错误输入的变量名称会让您暂停10分钟。
特别是当我为非常大的数据制作复杂的图时,这是严重的。通常这些都是小错别字,我不需要回溯,只是错误信息就可以了。
我试过
options(error = expression(NULL))
但显然在存储回溯之后会调用该处理程序(挂起仍然存在)。
library(ggplot2)
data(diamonds)
diamonds = diamonds[sample(x=nrow(diamonds),size=200000,replace=T),]
qplot(data=diamonds, wrong, var)
答案 0 :(得分:0)
我没有想到的一个显而易见的事情就是将调用包裹在tryCatch
中,如下所示:
tryCatch({
print(qplot(data=diamonds, wrong, var))
}, error = function(e){warning(e)})
在tryCatch中打印内部的图片非常重要,否则一旦自动打印返回的绘图对象就会出现错误。
我仍然会对options(warn=2)
的反向等价感兴趣(即不是将警告变成错误以便可以跟踪它们,而是将错误变成警告,因此它们不会产生巨大的追溯)