我在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/