[解決済み] for-loopのスキップエラー
2022-12-18 03:30:59
質問
6000×180の行列(1列につき1グラフ)に対して180のグラフを生成するループを行っていますが、データの一部が基準に適合せず、エラーが発生します。
"Error in cut.default(x, breaks = bigbreak, include.lowest = T)
'breaks' are not unique".
私は、プログラムがforループを実行し続け、どの列がこのエラーを起こしたかのリスト(列名を含む変数として?)を与えて欲しいのです。
これが私のコマンドです。
for (v in 2:180){
mypath=file.path("C:", "file1", (paste("graph",names(mydata[columnname]), ".pdf", sep="-")))
pdf(file=mypath)
mytitle = paste("anything")
myplotfunction(mydata[,columnnumber]) ## this function is defined previously in the program
dev.off()
}
注:tryCatchに関する多くの投稿を見つけましたが、どれも私にはうまくいきませんでした(少なくとも私はその機能を正しく適用することができませんでした)。ヘルプファイルもあまり役に立ちませんでした。
助けていただけるとありがたいです。ありがとうございます。
どのように解決するのですか?
ひとつの(汚い)方法としては
tryCatch
をエラー処理用の空の関数と一緒に使うことです。例えば、次のコードはエラーを発生させ、ループを中断させます。
for (i in 1:10) {
print(i)
if (i==7) stop("Urgh, the iphone is in the blender !")
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
Erreur : Urgh, the iphone is in the blender !
しかし、命令をラップして
tryCatch
に、何もしないエラー処理関数で、例えば :
for (i in 1:10) {
tryCatch({
print(i)
if (i==7) stop("Urgh, the iphone is in the blender !")
}, error=function(e){})
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
しかし、少なくともエラーメッセージを表示して、コードを実行し続けている間に何か悪いことが起こったかどうかを知るべきだと思います。
for (i in 1:10) {
tryCatch({
print(i)
if (i==7) stop("Urgh, the iphone is in the blender !")
}, error=function(e){cat("ERROR :",conditionMessage(e), "\n")})
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
ERROR : Urgh, the iphone is in the blender !
[1] 8
[1] 9
[1] 10
EDIT :
ということで、適用するには
tryCatch
を適用すると、次のようになります。
for (v in 2:180){
tryCatch({
mypath=file.path("C:", "file1", (paste("graph",names(mydata[columnname]), ".pdf", sep="-")))
pdf(file=mypath)
mytitle = paste("anything")
myplotfunction(mydata[,columnnumber]) ## this function is defined previously in the program
dev.off()
}, error=function(e){cat("ERROR :",conditionMessage(e), "\n")})
}
関連
-
R言語です。「接続を開くことができません」解決策
-
Rのexpand.grid()コマンド
-
[解決済み] Rでデータフレームに行を追加する方法は?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] 配列の反復処理に "for...in "を使用するのは、なぜ良くないのでしょうか?
-
[解決済み] Javaでenumを繰り返し処理するためのforループ
-
[解決済み] ( for... in ) と ( for... of ) の文の違いは何ですか?
-
[解決済み] JavaScriptのfor...of構文でループのカウンタ/インデックスを取得する
-
[解決済み] Rでtrycatchの書き方
-
[解決済み】PythonのFORループ内のループカウントを取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
RStudio の "plot.new() : figure margins too large" 問題を解決する。
-
R: 環境と変数のスコープ問題
-
Rでエラー:単項演算子への引数が無効
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
[解決済み] 特定のサイズのプロットウィンドウを作成する
-
[解決済み] 情報を損なわずに因数を整数値に変換するには?
-
[解決済み] Rで2つのグラフを同じプロットで表示する
-
[解決済み] ggplot2 Rプロットで軸の制限を設定するには?
-
[解決済み] ベクトル中のある要素のインデックスを求めるR関数はありますか?
-
[解決済み】RでCRANミラーを選択する方法