なぜRは "値[3L]のエラー:ブレーク/ネクストに対してループなし、最上位にジャンプする"というエラーをスローしますループの反復?私はこの問題は、プロットが失敗したときに、私は別の画像またはまったくイメージを作りたかったので、思いついたRバージョン2.13.1(2011-07-08)Rがブレーク/ネクストにループがないとトップレベルにジャンプします
for (i in seq(10)) {
tryCatch(stop(), finally=print('whoops'), error=function(e) next)
}
上です。 joranのアプローチを使用したコードは、次のようになります。
for (i in c(1,2,Inf)) {
fname = paste(sep='', 'f', i, '.png')
png(fname, width=1024, height=768)
rs <- tryCatch(plot(i), error=function(e) NULL)
if (is.null(rs)){
print("I'll create a different picture because of the error.")
}
else{
print(paste('image', fname, 'created'))
dev.off()
next
}
}
をええ、どちらも私のために働くように見えます。しかし、私はこのコードがplotコマンドが失敗した場合にpngを作成しないと言いませんでした。たぶん私はそれを間違って設定したでしょう。プロットは停止がどこに行くか。 – selden
+1良い説明ですが、私はあなたの構成に対して強くアドバイスします。ハッキングすることなく同じ結果を生み出すことができるはるかに優れたプログラミングフローがあります。あなたがやりたいことを内部関数に置き、tryCatchなどでラップします。 –
@Jorisはい、あなたは本当に正しいです。私はちょうど関数内から 'next'を呼び出すという考えに興味を持っていました。私は狂気のために謝罪するメモを追加します;) – Owen