从 shapefile 中提取邮政编码并在 R 中绘图

subsetting zipcodes from shapefile and plotting in R

我有 ZCTA 的美国人口普查 Shapefile。我只对策划纽约感兴趣。我可以读取整个 shapefile 并通过限制经度和纬度仅绘制 NY,但这需要很长时间并且 R 不断崩溃。

相反,我想减少到只有纽约的邮政编码。我正在读取 shapefile,转换为数据帧,然后子集化为纽约的 zipcodes/ZCTAs。然而,当我绘制结果时,它并不是一张完整的地图。这是正确的方法吗?我的 R 代码和情节如下:

### read in the ZCTA shapefile for US
us_modzcta <- "Data/us_zcta/tl_2018_us_zcta510.shp"
us <- shapefile(us_modzcta)

## convert to dataframe 
us_df <- fortify(us,region="ZCTA5CE10")

## subset - keep only zip codes in NY - starts with 10, 11, 12, 13, 14
ny_df <- us_df[which(startsWith(us_df$id,c("11","12","13","10","14"))),]
p<- plot(ny_df)

为什么通过 rasterggplot2? 的路径如此复杂请查看 sf 包:

library(sf)
library(tidyverse)
us_modzcta <- "census/tl_2018_us_zcta510.shp"
ny <- st_read(us_modzcta) |>
  filter(grepl("^1[0-4]", ZCTA5CE10))

plot(ny$geometry)

reprex package (v2.0.1)

于 2022-03-05 创建