我的问题详情如下:
我的输入数据格式如下面的小例子所示:
USERID LONGITUDE LATITUDE
1 -8.79659 55.879554
2 -6.874743 56.87896
3 -3.874743 58.87896
4 -10.874743 80.87896
我使用了以下代码来反转地理编码经纬度
dset <- as.data.frame(dataset[,2:3])
dset <- na.omit(dset)
library (ggmap)
location <- dset
nrow(location)
locaddr <- matrix(0,nrow(location),1)
location <- as.matrix(location)
for (i in 1:nrow(location))
{
locaddr[i,] <- revgeocode(location[i,], output = c("address"), messaging = FALSE, sensor = FALSE, override_limit = FALSE)
}
现在某些经度 - 纬度从Google Maps API返回NA。但是当发生这种情况时,for循环因某种原因而终止。我想绕过这个并继续处理其余的数据点。我有一个想法是以下伪代码:
if i = nrow(location)
continue
else
repeat revgeocode for loop here
end-for
end-if.
请告知如何做到这一点或是否有更好的方法来做到这一点。
提前感谢您的时间和帮助。
答案 0 :(得分:2)
此处无需使用for-loop
。我建议您使用lapply
来避免副作用,并预先分配问题:
locaddr <- lapply(seq(nrow(location)), function(i){
revgeocode(location[i,],
output = c("address"),
messaging = FALSE,
sensor = FALSE,
override_limit = FALSE)
})