我有一个循环,循环了数百次,到最后会产生以下警告:
Warning messages:
1: In min(j, na.rm = TRUE) :
no non-missing arguments to min; returning Inf
有没有办法询问 R 警告消息是在哪一行生成的?
楼下的评论: “我没有直接将 min 作为一行。它可能嵌套在其他函数中,否则我不会问这个问题,因为我知道这是一个来自 min 的问题。”
我有一个循环,循环了数百次,到最后会产生以下警告:
Warning messages:
1: In min(j, na.rm = TRUE) :
no non-missing arguments to min; returning Inf
有没有办法询问 R 警告消息是在哪一行生成的?
楼下的评论: “我没有直接将 min 作为一行。它可能嵌套在其他函数中,否则我不会问这个问题,因为我知道这是一个来自 min 的问题。”
你可以尝试设置:
options(warn = 2)
我建议将警告视为错误。这样,当您的代码在第一个警告处停止时,使用 traceback()
查看堆栈跟踪。
但这只对第一个警告有用。
要恢复默认行为,请使用:
options(warn = 0)
traceback()
返回“没有可用的回溯信息”。但是以下警告的 options(error=recover)
等效方法很有用:options(warning.expression=quote(recover()))
。 - Harshfor
循环操作指南,与R
无关。min
代码行之前添加: print(paste("j is", j, "\n")) # or instead of j, use i, or whichever index you are using
min(j, na.rm = TRUE)
NA
。 apply(myDF, 1, function(x) all(is.na(x)))
traceback()
,就像@NPE建议的那样。 - Ricardo Saporta
min(rep(NA, 10), na.rm=T)
- Arun