如何解决R call_geolocator_latlon 函数返回 NA
我正在尝试使用 R tigris 包获取人口普查区域信息,并按照此处详述的过程进行操作: Retrieve Census tract from Coordinates 我的代码一直工作到上个月它突然停止工作并为任何经纬度组合返回 NA 。我查看了有关 tigris 包的文档,但没有看到我做错了什么。我还更新了我的 tigris 包,但以下命令不断返回 NA。
library(tigris)
call_geolocator_latlon(40.61847,-74.02123)
有谁知道该软件包是否已被弃用?
解决方法
试试这个
replacement_function <- function (lat,lon,benchmark,vintage)
{
if (missing(benchmark)) {
benchmark <- "Public_AR_Census2020"
}
else {
benchmark <- benchmark
}
if (missing(vintage)) {
vintage <- "Census2020_Census2020"
}
else {
vintage <- vintage
}
call_start <- "https://geocoding.geo.census.gov/geocoder/geographies/coordinates?"
url <- paste0("x=","&y=",lat)
benchmark0 <- paste0("&benchmark=",benchmark)
vintage0 <- paste0("&vintage=",vintage,"&format=json")
url_full <- paste0(call_start,url,benchmark0,vintage0)
r <- httr::GET(url_full)
httr::stop_for_status(r)
response <- httr::content(r)
return(response$result$geographies$`Census Blocks`[[1]]$GEOID)
if (length(response$result$geographies$`2020 Census Blocks`[[1]]$GEOID) ==
0) {
message(paste0("Lat/lon (",lat,",") returned no geocodes. An NA was returned."))
return(NA_character_)
}
else {
if (length(response$result$geographies$`2020 Census Blocks`[[1]]$GEOID) >
1) {
message(paste0("Lat/lon (",") returned more than geocode. The first match was returned."))
}
return(response$result$geographies$`2020 Census Blocks`[[1]]$GEOID)
}
}
你可以像调用 call_geolocator_latlon() 函数一样调用这个函数
replacement_function(40.61847,-74.02123)
,
根据official page,2021 年 1 月和 2 月是形状更新的月份。这些将从 3 月开始提供。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。