我正在尝试提取大量经度和纬度线的县fips数。我可以从FCC API获取数据,但我很难将其读入R。
例如,当我在R中运行以下代码时:
library(httr)
fips <- GET("http://data.fcc.gov/api/block/find", query = list(latitude = 48.9905, longitude = -122.2733, showall="false"))
result <- content(fips, as = "parsed")
result
对象&#34;结果&#34;显示如下
{xml_document}
<Response>
[1] <Block FIPS="530730102002091"/>
[2] <County FIPS="53073" name="Whatcom"/>
[3] <State FIPS="53" code="WA" name="Washington"/>
我感兴趣的信息是县FIPS代码&#34; 53073。&#34;我该如何提取这个数字?
答案 0 :(得分:1)
您必须解析从该API返回的XML
library("httr")
library("XML")
fips <- GET("http://data.fcc.gov/api/block/find", query = list(latitude = 48.9905, longitude = -122.2733, showall="false"))
result <- content(fips, as = "parsed")
> xmlToList(xmlParse(result))$County["FIPS"]
FIPS
"53073"
答案 1 :(得分:0)
另一种选择是使用以下链接中的代码:Latitude/Longitude to FIPS Codes via the FCC's API。
# FCC's Census Block Conversions API
# http://www.fcc.gov/developers/census-block-conversions-api
install.packages("RCurl")
install.packages("RJSONIO")
latlong2fips <- function(latitude, longitude) {
url <- "http://data.fcc.gov/api/block/find?format=json&latitude=%f&longitude=%f"
url <- sprintf(url, latitude, longitude)
json <- RCurl::getURL(url)
json <- RJSONIO::fromJSON(json)
as.character(json$County['FIPS'])
}
# Orange County
latlong2fips(latitude=28.35975, longitude=-81.421988)
我相信有一个查询限制,但我还没有确定那是什么。