1. ホーム
  2. r

[解決済み] Rで "warning() "が表示されたらループを解除する。

2022-05-16 20:28:22

質問

問題が発生しました。 複数のファイルを処理するためにループを実行しています。 私の行列は巨大であるため、注意しないとしばしばメモリ不足に陥ります。

警告が発生した場合、ループから抜け出す方法はありますか。 ループを実行し続け、ずっと後で失敗したと報告するだけです...迷惑な話です。 何かアイデアはありませんか、賢明なstackoverflow-ers?

どのように解決するのですか?

で警告をエラーにすることができます。

options(warn=2)

警告とは異なり、エラーはループを中断します。うまく、Rはこれらの特定のエラーが警告から変換されたことをあなたに報告します。

j <- function() {
    for (i in 1:3) {
        cat(i, "\n")
        as.numeric(c("1", "NA"))
}}

# warn = 0 (default) -- warnings as warnings!
j()
# 1 
# 2 
# 3 
# Warning messages:
# 1: NAs introduced by coercion 
# 2: NAs introduced by coercion 
# 3: NAs introduced by coercion 

# warn = 2 -- warnings as errors
options(warn=2)
j()
# 1 
# Error: (converted from warning) NAs introduced by coercion