[英]Warning Message Line Number R
我有一個很大的 for 循環,它循環了數百次,最后它會產生這個警告:
Warning messages:
1: In min(j, na.rm = TRUE) :
no non-missing arguments to min; returning Inf
有什么辦法可以問 R 警告消息是在哪一行生成的?
OP 的評論如下:“我沒有直接將 min 作為一行。它可能嵌套在其他函數中,否則我不會問這個問題,因為我知道這是來自 min 的問題。”
您可以嘗試設置:
options(warn = 2)
...將警告視為錯誤。 然后,當您的代碼在第一個警告處停止時,使用traceback()
查看堆棧跟蹤。
不過,這只會幫助您解決第一個警告。
要返回默認行為,請使用:
options(warn = 0)
這是一個基本的for
循環方法,不是真正依賴於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)
那么你就會很清楚錯誤在哪里。
至於更R
相關的解決方案,如果 j 來自 data.frame、矩陣、列表等,
你想找到哪個塊(迭代部分)除了NA
什么都沒有。
為此,您可以使用類似
apply(myDF, 1, function(x) all(is.na(x)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.