使用R中的DSTK API将坐标转换为国会区

时间:2015-11-17 20:49:02

标签: r api geocoding

第一次问问,虽然经常潜伏。通过阅读Stack Overflow上的其他Q + As,我已经回答了很多问题,所以这是我还没有看到答案的那个,我想我会把它扔出去。

我有大量的Lat / Long值与我需要获得国会选区的唯一身份证相关联(大数约为90K ......)。我通过ggmap获取了这些,调用Data Science Toolkit返回Geos。 Data Science Toolkit还有一个使用坐标返回政治信息的API,但我不知道如何在R中编写代码来查询它并只返回我需要的值(例如,#34;第八区,CA" )并将其作为列添加到数据框中。

我发布了一小部分数据样本,因此您可以看到它的结构,以及this is the home of the API。如果这里的任何内容都很简陋,我很抱歉,我对此非常陌生。我们将非常感谢您提供的任何帮助!

enter image description here

使用hrbrmstr推荐的解决方案解决:

#Assumes working from a CSV with two columns for Lat/Long and one with an ID
# Load the required packages. 
require(rgdal)
require(sp)
require(maps)
require(tigris)

#Uses the tigris package to pull in the congressional districts
districts <- congressional_districts(cb = TRUE, resolution = '20m')

#Upload data to a dataframe
geos<-read.csv("Codes.csv")

#converts the Latitude and Lontitude columns into a Geospatial Data Frame
coordinates(geos) <- c("longitude", "latitude")

#Sets Proj4Strings of geos to that of districts
proj4string(geos)<-proj4string(districts)

#determines which districts contain geos
inside.district <- !is.na(over(geos, as(districts, "SpatialPolygons")))
#Checks the fraction of geos inside a district
mean(inside.district)

#Takes the values for District and adds them to your geos data
geos$District <- over(geos,districts)$CD114FP
#Takes the values for State and adds them to your geos data
geos$State <- over(geos,districts)$STATEFP

#Exports the geos data to a CSV
write.csv(geos, "Districts.csv", row.names=FALSE)

0 个答案:

没有答案