0
ジオコードアドレスにgooglewayパッケージを使用して関数を作成しましたが、内部サーバーエラーが500件発生するとクラッシュします。次のように関数である:Rジオコーディング機能で500内部サーバーエラーを処理する
rugeocoder.fun <- function(addr){
require(googleway)
output <- vector("list", length=length(addr))
for(i in 1:length(addr)){
output[[i]] <- google_geocode(address=addr[i], key="myapikey", language="ru", simplify=T)
print(i)
}
return(output)
}
(はい、私が代わりに機能内部ループのlapply用いてこれを達成する可能性が知っているが、私はコンソールにカウンタプリントを有するように。)当然
、これは、比較的単純なエラーのために、この時点までのすべての出力を失います。私はその機能を持つために何かできますか?a)出力をその時点まで保存して、そのアドレスで再起動できるようにするか、b)サーバーエラーが消えるまで試し続けます。一時的?)。エラー条件を処理するための
rugeocoder.fun <- function(addr){
require(googleway)
output <- vector("list", length=length(addr))
tryCatch({
for(i in 1:length(addr)){
output[[i]] <- google_geocode(address=addr[i], key="myapikey", language="ru", simplify=T)
print(i)
}},error=function(e) output[[i]] <- "Error: reattempt")
return(output)
}
を参照してください 'try'とその類似の機能:?それはtryCatch()でエラーが発生したときのコメントで提案パー – nicola
これは実際には 'googleway'自体の問題ではありませんか?ループ内のエラーを処理するための簡単な 'for-loop'の例だけで、問題や要件を再現することができます。@nicolaの提案に従ってください。 – SymbolixAU
@SymbolixAUいいえ、それはGoogleの問題です。私はtryCatchを使いこなしていますが、エラーメッセージを表示して続行することができますが、まだそれを得るための作業方法を見つけていません500の内部サーバーのエラーが消えるまで、その特定のアドレスを繰り返す。私はそれが新しい質問だと思う。 –