R错误-下标超出范围

R错误-下标超出范围,r,google-geocoding-api,rcurl,rjsonio,R,Google Geocoding Api,Rcurl,Rjsonio,我正在尝试运行这段代码,它获取一个地址列表,并通过谷歌的地理代码API(使用下面的函数Addr2latlng)运行每个地址,以获得纬度/经度,并使用下面的ProcessAddrList将每个地址放入数据框中 问题是Addr2latlng对于一个地址可以正常工作,ProcessAddrList对于多达10个地址可以正常工作,但是从11个或更多地址中,我得到以下错误。对于10个地址,这很好 要运行下面的代码,需要加载包RCurl和RJSONIO Error in geoStruct$results[

我正在尝试运行这段代码,它获取一个地址列表,并通过谷歌的地理代码API(使用下面的函数Addr2latlng)运行每个地址,以获得纬度/经度,并使用下面的ProcessAddrList将每个地址放入数据框中

问题是Addr2latlng对于一个地址可以正常工作,ProcessAddrList对于多达10个地址可以正常工作,但是从11个或更多地址中,我得到以下错误。对于10个地址,这很好

要运行下面的代码,需要加载包RCurl和RJSONIO

Error in geoStruct$results[[1]] : subscript out of bounds
Error in geoStruct$results[[1]] : subscript out of bounds

ProcessAddrList <- function(addrList)

{
  resultDF <- data.frame(atext=character(),X=numeric(),Y=numeric(),EID=numeric())

  i <- 1

  for (addr in addrList)

  {
    latlng = Addr2latlng(addr)
    resultDF <-rbind(resultDF,data.frame(atext=addr,X=latlng[[2]],Y=latlng[[1]],EID=i))
    i <- i+1
  }

  return (resultDF)
}

Addr2latlng <- function(address)

{
  url <- MakeGeoURL(address)
  apiResult <- getURL(url)
  geoStruct <- fromJSON(apiResult, simplify = FALSE)
  lat <- NA
  lng <- NA
  try(lat <- geoStruct$results[[1]]$geometry$location$lat)
  try(lng <- geoStruct$results[[1]]$geometry$location$lng)
  return(c(lat, lng))

}

ProcessAddrList您希望使用谷歌地图对一个位置进行地理编码。
您应该使用
ggmap
包中的
geocde

library(ggmap) 
sapply(addrList,geocode) ##google maps api limits to 2500 queries a day.
例如:

library(ggmap)
addrList <- c('Paris','Djerba','London')
sapply(addrList,geocode) 

#      Paris    Djerba   London    
# lon 2.352222 10.84515 -0.1198244
# lat 48.85661 33.8076  51.51121 
库(ggmap)

addrList您希望使用谷歌地图对一个位置进行地理编码。 您应该使用
ggmap
包中的
geocde

library(ggmap) 
sapply(addrList,geocode) ##google maps api limits to 2500 queries a day.
例如:

library(ggmap)
addrList <- c('Paris','Djerba','London')
sapply(addrList,geocode) 

#      Paris    Djerba   London    
# lon 2.352222 10.84515 -0.1198244
# lat 48.85661 33.8076  51.51121 
库(ggmap)

addrList最初的问题是Google API的速率限制问题。这个代码片段,“apiResult最初的问题是Google API的速率限制问题。这个代码片段,“apiResult你确定你没有达到Google API的速率限制吗?你确定你没有达到Google API的速率限制吗?”?