开始使用免费开始使用

检查数据是否能匹配

强行把您的数据塞进 data 槽不可行,因为这会破坏行与空间对象之间的正确对应关系。那应当如何把收入数据添加到多边形数据中呢?sp 包中的 merge() 函数正是为此而设计的。

您可能在数据框中见过 merge()sp::merge() 的结构几乎完全相同,但它接收一个 Spatial*** 对象和一个数据框,并返回一个新的 Spatial*** 对象,其中的数据槽是原数据槽与该数据框合并的结果。要完成这次合并,空间对象和数据框都需要有一列包含用于匹配的 ID。

nyc_tractsnyc_income 都有包含普查小区 ID 的列,因此非常适合合并这两个数据集。不过,最好先检查拟用于匹配的 ID 是否唯一,并且两个数据集的每一行都能在对方数据集中找到匹配。

在继续合并之前,让我们先来检查一下。

本练习是课程的一部分

在 R 中可视化地理空间数据

查看课程

练习说明

  • any()duplicated() 一起用于 nyc_income$tract,检查 nyc_income 中每一行是否具有唯一的小区 ID。
  • any()duplicated() 一起用于 nyc_tracts$TRACTCE,检查 nyc_tracts 中每一行是否具有唯一的小区 ID。
  • nyc_tracts$TRACTCE %in% nyc_income$tract 使用 all(),检查 nyc_tracts 的小区是否都出现在 nyc_income 中。
  • nyc_income$tract %in% nyc_tracts$TRACTCE 使用 all(),检查 nyc_income 的小区是否都出现在 nyc_tracts 中。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Check for duplicates in nyc_income


# Check for duplicates in nyc_tracts


# Check nyc_tracts in nyc_income


# Check nyc_income in nyc_tracts
编辑并运行代码