←
PDF 201 / 520 Keys
→
English · PDF 201
Original PDF page 201
中文 · PDF 201
    1. weather 仅包含始发地(纽约)机场的信息。如果它包含美国所有机场的天气记录,它将与 flights 定义什么额外的关系?
    1. 我们知道一年中的某些日子是“特殊的”,乘坐飞机的人比平时少。你如何将这些数据表示为一个数据框?该表的主键是什么?它将如何与现有的表连接?

键

用于连接每对表的变量称为键。键是唯一标识一个观测的变量(或变量集合)。在简单的情况下,单个变量就足以标识一个观测。例如,每架飞机都由其 tailnum 唯一标识。在其他情况下,可能需要多个变量。例如,要标识 weather 中的一个观测,你需要五个变量:year、month、day、hour 和 origin。

有两种类型的键:

  • 主键唯一标识其自身表中的一个观测。例如,planes$tailnum 是一个主键,因为它唯一标识 planes 表中的每架飞机。
  • 外键唯一标识另一个表中的一个观测。例如,flights$tailnum 是一个外键,因为它出现在 flights 表中,将每个航班匹配到唯一的一架飞机。

一个变量可以既是主键又是外键。例如,origin 是 weather 主键的一部分,同时也是 airport 表的外键。

一旦确定了表中的主键,最好验证它们确实唯一标识每个观测。一种方法是使用 count() 对主键进行计数,并查找 n 大于 1 的条目:

planes %>% count(tailnum) %>% filter(n > 1) #> # A tibble: 0 × 2 #> # ... with 2 variables: tailnum , n