私の問題はhere説明されているものと非常によく似ていますが、残念ながら私は、私は午前、特定の状況でコードを適用することができません。(Rで)
だから私はしようとしています多くのURLをダウンロードするには、これを行うためにforループを使用しています。これは私のループの様子です。
ids <- c("1", "3", "7", "9")
numbers <- list()
for (jj in seq_along(ids)) {
numbers[[jj]] <- as.numeric(ids[jj])
}
これはすべてのdandyで動作します。私がエラー"Error: Try Again"
を受け取るまではランダムに表示されますが、同じ場所でループを再開するだけで修正することができます。
ただし、私が使用しているAPIキーが有効期限切れの"Error: Stop for loop"
という別のエラーがあります。このエラーでは、ループを停止し、手動でAPIキーを再起動する必要があります(残念ながら自動化できません)。それが途絶えたイテレーターでもう一度始めてください。だからここ
errors <- c("Error: Try Again", "Error: Stop for loop")
numbers <- list()
for (jj in seq_along(ids)) {
numbers[[jj]] <- as.numeric(ids[jj])
if (jj == sample(1:4, 1)) stop(sample(errors, 1))
#randomly stops and gives one or the other error
}
は私が何をしたいです::だから
はこれをシミュレートするために、私はこの小さなループを書いたたび、私のループヒットのための「エラー:もう一度試してみてください」ループが動作するまでループを再試行します。
私のforループが "Error:Stop for loop"とヒットするたびに、ループを停止してAPIキーエラーを手動で修正できるようにします。この場合、ループの結果を保存しておきたいので、後でループを再起動すると、それらを一緒にバインドすることができます。
残念ながら、私は残念なことに、この種の条件を書いても未熟です。私はtry
またはtryCatch
を何となく使用しなければならないことを知っていますが、エラーが発生した場合よりも特定のエラーメッセージをテストする方法がわかりません。
皆さんありがとうございます!
私の実際のループのコードがパッケージを必要としたと私は理にかなっているという考え – FaV1
を伝える簡単な再現性の例を望んでいた、もう少し慎重にあなたの質問を読んだ後、私はそれがそうだった考え出したので、それだけでイラストです。 – Gregor