第一次问问,虽然经常潜伏。通过阅读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。如果这里的任何内容都很简陋,我很抱歉,我对此非常陌生。我们将非常感谢您提供的任何帮助!
使用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)