筛选街区
纽约里有不少无关的街区,您只需要纽约县的街区。用子集筛选就行,您已经会了!
neighborhoods 是一个 SpatialPolygonsDataFrame。您在第 2 章学过如何基于 data 槽中的列来做子集。关键是先创建一个逻辑向量,然后像操作数据框一样对 SpatialPolygonsDataFrame 做子集。
如何识别正确的街区?请查看:
head(neighborhoods@data)
CountyFIPS 是用于标识县的数字编码。如果您能找出纽约县的编码,就能只保留该值对应的行。
本练习是课程的一部分
在 R 中可视化地理空间数据
练习说明
nyc_tracts_merge对象在COUNTYFP列中也有县级编码。先用unique()查找纽约县对应的编码。- 通过添加一个逻辑条件来筛选
neighborhoods,判断neighborhoods$CountyFIPS是否等于该编码。 - 修改绘图,使用
manhat_hoods,不要再用 neighborhoods。 - 添加一个
tm_text()图层,将text映射到"NTAName"。
交互式实操练习
通过完成这段示例代码来试试这个练习。
library(tmap)
# Find unique() nyc_tracts_merge$COUNTYFP
# Add logical expression to pull out New York County
manhat_hoods <- neighborhoods[___, ]
tm_shape(nyc_tracts_merge) +
tm_fill(col = "estimate") +
tm_shape(water) +
tm_fill(col = "grey90") +
# Edit to use manhat_hoods instead
tm_shape(neighborhoods) +
tm_borders() +
# Add a tm_text() layer