我处理大量数据集,因此我的R程序运行了几个小时。有时它会发生错误,程序会因某些警告/错误消息而中止。大多数情况下,这不是我自己编程的警告信息,因为我想到了什么可能出错 - 这是一些意外的事情,导致我调用的某个基本R函数出现警告或错误。对于我自己编程的警告消息,我可以使用expr
的{{1}}参数。是否有类似全球选择的东西?
R(我在Win 8上使用Rstudio)只在后台运行,因为我还有其他工作要做。我不时地点击R以查看它是否仍在运行。
如果出现问题,我想从beepr包中发出类似warning
的哔声。
当出现警告/错误时,有没有办法执行某些表达式(如此beep(sound=1)
)?它足以满足后者,因为beep(sound=1)
可以通过options(warn=2)
促进对错误的每个警告。如果R仍然执行其他表达警告的表达式,则可能很难执行某些表达式。
答案 0 :(得分:3)
您可以使用tryCatch
按以下方式执行此操作:
产生警告的示例:
x <- 1:10
y <- if (x < 5 ) 0 else 1
Warning message:
In if (x < 5) 0 else 1 :
the condition has length > 1 and only the first element will be used
使用tryCatch
>tryCatch(if (x < 5 ) 0 else 1,
warning = function(x) print(x),
finally = print('hello'))
<simpleWarning in if (x < 5) 0 else 1: the condition has length > 1 and only the first element will be used>
[1] "hello"
在上面的代码中我print(hello)
添加了beep(sound=1)
,只要它发出警告就会发出哔声。