我正在尝试调试一个函数。我想在它们出现时显示警告,但我不明白如何更改警告设置。
答案 0 :(得分:24)
指定
可能很有用options(warn=2, error=recover)
如@plannapus所述,warn=2
会将警告升级为错误; error=recover
将在您发出警告(现已升级为错误)的位置将您置于调试/浏览器模式。 (使用options(warn=0, error=NULL)
恢复原始设置。)
答案 1 :(得分:12)
集
options(warn=1)
在?options
答案 2 :(得分:9)
来自options
的帮助页面:
warn
:
设置警告消息的处理。如果warn
为否定,则忽略所有警告。如果warn
为零(默认值),则会存储警告,直到顶级函数返回为止。如果发出少于10个警告信号,则会打印一条消息,说明有多少(最多50个)发出信号。创建了一个名为last.warning
的对象,可以通过函数warnings
打印。如果warn
为1,则会在出现警告时打印。如果warn
为两个或更大,则所有警告都会变为错误。
所以options(warn=1)
应该在发生警告时打印警告。
否则函数traceback()
(在未识别的错误之后)显示哪个子例程失败(更准确地说是“导致错误的调用序列”)。