警告消息行号R.

use*_*440 9 r

我有一个很大的for循环循环数百次,最后会产生这个警告:

Warning messages:
1: In min(j, na.rm = TRUE) :
  no non-missing arguments to min; returning Inf
Run Code Online (Sandbox Code Playgroud)

有什么办法我可以问R生成警告信息的哪一行?


OP的评论如下:"我不直接将min作为一条线.它可能嵌套在其他函数中,我不会问这个问题,因为我知道这是来自min的问题."

NPE*_*NPE 11

您可以尝试设置:

> options(warn=2)
Run Code Online (Sandbox Code Playgroud)

然后,当您的代码在第一个警告处停止时,使用traceback()查看堆栈跟踪.

这只会帮助您进行第一次警告.

  • 不是真正的解决方案......更像是一个糟糕的解决方法.我不知道为什么R忽略了行号.很难调试. (3认同)
  • 这对我不起作用。`traceback()` 返回“没有可用的回溯”。但是以下相当于警告的`options(error=recover)`很有用:`options(warning.expression=quote(recover()))` (2认同)