Функция geocode_OSM () в R, возвращающая $ query = NA, завершается с ошибкой в ​​цикле, но работает сама по себе - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть скрипт, который использует tmaptools :: geocode_OSM () в цикле.

Вот этот цикл:

for(i in 1:nrow(origAddress)) {
if(origAddress[i,'lon'] == ""){
print(
  paste(
    "Working on geocoding:"
    , origAddress$PartialAddress[i]
    )
  )
result <- geocode_OSM(
  origAddress$PartialAddress[i]
  , return.first.only = T
  , as.data.frame = T
)
origAddress$lon[i] <- as.numeric(result[3])
origAddress$lat[i] <- as.numeric(result[2])
} else {
print("Trying next record...")
}
}

Этот цикл работает нормально, пока не доберется до чего-то, где geocode_OSM()$query возвращает NA по какой-то причине цикл обрывается.Пример, с которым я работаю, - это родовой адрес, где город написан неправильно.Результат цикла возвращает:

Error in do.call(rbind, output3) : second argument must be a list
In addition: Warning message:
In FUN(X[[i]], ...) : No results found for "LAKE RONKONKAMA, NY, 11779".

Над озером RONKONKAMA фактически написано LAKE RONKONKOMA.Когда я запускаю следующее за пределами цикла, я получаю:

tst.rslt <- geocode_OSM(
  origAddress$PartialAddress["LAKE RONKONKAMA, NY, 11779"]
  , return.first.only = T
  , as.data.frame = T
)
print(tst.rslt)

 query      lat      lon  lat_min  lat_max  lon_min  lon_max
1  <NA> 64.57315 11.52804 57.75901 71.38488 4.087527 31.76149
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...