English · PDF 203
在开始处理这些数据时,我曾天真地以为每个航班号每天只会使用一次:这样会让沟通某个特定航班的问题变得容易得多。遗憾的是,事实并非如此!如果一张表缺少主键,有时用 mutate() 和 row_number() 添加一个会很有用。当你做了一些筛选之后,想回头与原始数据进行核对时,这会让观测值的匹配变得更容易。这被称为代理键。
主键与另一张表中对应的外键构成一个关系。关系通常是一对多的。例如,每个航班有一架飞机,但每架飞机有多个航班。在其他数据中,你偶尔会看到一对一的关系。你可以把它看作一对多关系的一种特例。你可以用一个多对一关系加上一个一对多关系来建模多对多关系。例如,在这份数据中,航空公司与机场之间是多对多的关系:每家航空公司飞往多个机场;每个机场有多家航空公司。