←
PDF 209 / 520 Duplicate Keys
→
English · PDF 209
Original PDF page 209
中文 · PDF 209

重复的键

到目前为止,所有的图示都假设键是唯一的。但实际情况并非总是如此。本节将解释当键不唯一时会发生什么。有两种可能的情况:

  • 其中一个表有重复的键。当你想添加额外信息时这很有用,因为通常存在一对多的关系:

注意,我在输出中把键列放在了一个稍微不同的位置。这反映了键在 y 中是主键,而在 x 中是外键:

x <- tribble( ~key, ~val_x, 1, "x1", 2, "x2", 2, "x3", 1, "x4" ) y <- tribble( ~key, ~val_y, 1, "y1", 2, "y2" ) left_join(x, y, by = "key") #> # A tibble: 4 × 3 #> key val_x val_y #> #> 1 1 x1 y1 #> 2 2 x2 y2 #> 3 2 x3 y2 #> 4 1 x4 y1

  • 两个表都有重复的键。这通常是一个错误,因为在这两个表中,键都无法唯一地标识一个观测。当你连接有重复键的表时,会得到所有可能的组合,即笛卡尔积: