使用for循环和georoute计算行程距离时跳过错误

时间:2015-10-29 21:21:57

标签: r loops error-handling geocoding

我在R中使用taRifx.geo包来计算地址之间的行驶距离。我正在做的是将起点和终点放在数据帧的两列中。在我的理解中,georoute一次只能计算一对距离,所以我写了一个for循环来计算数据帧中的所有对。但是当出现错误时,循环停止。

我想要的不是停止循环,而是在遇到错误时将值NA值放在距离向量中并从下一对继续。我知道我应该使用tryCatch,但我不知道如何在这里编写代码。有人可以帮忙吗?真的很感激!

library(taRifx.geo)

distance=data.frame(matrix(0,200,1))

for(i in 1:200){

  distance[i,1]=as.matrix(georoute( c(as.character(address$capitol[i]),
                          as.character(address$capitol_destination[i])),
                        verbose=TRUE, returntype="distance",
                        service="bing" ))

}

1 个答案:

答案 0 :(得分:0)

tryCatch(as.matrix(georoute( c(as.character(address$capitol[i]),
                           as.character(address$capitol_destination[i])),
                           verbose=TRUE, returntype="distance",
                           service="bing" )),  error=function(a) {"."} )