【发布时间】:2014-08-01 15:22:30
【问题描述】:
当我尝试在循环中运行函数 route() 时,我在 R 中遇到此错误:
错误:(列表)对象不能被强制输入“整数”
该函数位于“ggmap”包中。它需要两个字符串作为参数,并在谷歌上搜索它们之间的方向。它返回一个数据框,其中包含有关路线的信息,包括距离、分钟、坐标等。
我有一个包含许多代表邮政编码的字符串的向量,我在这些邮政编码的循环中使用了这个 route() 函数。前 40 次左右的搜索运行正常,但随后崩溃并出现上述错误。
df <- as.data.frame(read.csv("df.csv", sep=","))
for (i in df$post_code){
route(i,'NE29 8NH', structure = 'route', mode = 'driving')
}
我用邮政编码检查了向量,没有缺失值或其他异常。请帮我解决这个问题。
【问题讨论】:
-
我们可以看看一些数据吗?
-
这是邮政编码向量的结构:chr [1:2102] "NE48 2SG" "NE43 7QP" "NE46 3NB" "NE46 3AL" "NE46 2BD" "NE46 2EZ" "NE49 9AJ " "NE42 6JU" "NE46 1PU" "NE45 5PJ" ...
-
routehelp 说from = "name of origin addresses in a data frame (vector accepted)",那你为什么要使用循环呢? -
因为如果我尝试将向量作为参数,它只会计算向量的第一个值的方向(即第一个邮政编码)
-
我刚刚注意到的奇怪的事情是,每次我尝试运行循环时,它都会在不同数量的搜索后失败。也许这与谷歌可能会阻止访问以一次发送太多请求有关?但是,为什么会出现这个错误?