r - 使用for回路和georoute计算行驶距离时跳过错误

标签 r loops error-handling geocoding

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

我想要的不是停止循环,而是在遇到错误并从下一个对继续时,将值NA值放入距离 vector 中。我知道我应该使用诸如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" ))

}

最佳答案

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) {"."} )

关于r - 使用for回路和georoute计算行驶距离时跳过错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33424835/

相关文章:

php - 使用ob_start()时无法捕获 echo 或错误

R 直方图和箱线图对齐

c - 如何在 while 循环的条件下比较多个值

java - IndexOutOfBoundsException - 只是有时?

ios - NSHTTPCookie : loop through all keys

javascript - 在 Firebase 上登录后的路由

excel - VBA-运行时错误9并使用*作为变量工作表名称

r - 查找一列中组的最大值,然后引用该行中的另一列值

返回一个 `ifelse` 的矩阵

r - 有没有办法删除 ggplot 之外的空白?