我有一个大数据框(832k行),网格格式加上一个变量,纬度和经度。我想绘制每个县的这个变量的平均值。问题是我没有逐点识别县或州,只有坐标。
对不起,我不知道如何包含一个可复制的示例
两种方法:
1)计算所有纬度/经度网格的平均值。这种方法使您的县中心偏向更高密度的网格
2)计算网格的边界[min-max lat / lon]并平均边界。这种方法将县中心放置在网格跨度的正中心。
您需要获取县(或州)数据,然后在空间上将其与您的数据框连接。这种数据的一个可能来源是美国人口普查公布的TIGER形状文件(参见例如https://catalog.data.gov/dataset/tiger-line-shapefile-2016-nation-u-s-current-county-and-equivalent-national-shapefile)。
然后,您可以使用sf
包将shapefile读入R,将其与数据连接,然后使用常规汇总函数按县汇总数据。
library(sf)
filename <- 'https://www2.census.gov/geo/tiger/TIGER2016/COUNTY/tl_2016_us_county.zip'
tmpfile <- tempfile()
tmpdir <- tempdir()
download.file(filename,tmpfile)
unzip(zipfile = tmpfile, exdir = tmpdir)
county_data <- st_read(paste0(tmpdir, '/tl_2016_us_county.shp'))
unlink(tmpfile)
unlink(tmpdir)