在 R 中加入具有多对多关系的数据框

问题描述 投票:0回答:1

我正在尝试连接 R 中的两个数据帧,每个数据帧都有相同 ID 号的多次重复。这是数据中的预期现象,不是数据质量问题。

我的理解是,我应该在两个数据帧之间进行左连接,指定多对多关系,这样就可以了。然而,我的 ID 却以一种意想不到的方式被重复。

以下是一些测试数据:

test4 <- data.frame(ID = c('A', 'A', 'B', 'B', 'C'), Score = c(1,2,3,4,5))
test5 <- data.frame(ID = c('A', 'A', 'B', 'B', 'C'), Race = c('W','W','B','B','W'))
test6 <- test4 %>% left_join(test5, by = "ID",  relationship = "many-to-many")

输出数据如下:

  ID Score Race
   A     1    W
   A     1    W
   A     2    W
   A     2    W
   B     3    B
   B     3    B
   B     4    B
   B     4    B
   C     5    W

当我希望它像这样输出时:

  ID Score Race
   A     1    W
   A     2    W
   B     3    B
   B     4    B
   C     5    W

我愿意打赌我错过了一些简单的东西,但我就是不知道是什么。任何建议非常感谢!

r many-to-many left-join
1个回答
0
投票

您可以在应用

distinct
之前使用
left_join
,例如,

test4 %>%
    left_join(distinct(test5), by = "ID")
© www.soinside.com 2019 - 2024. All rights reserved.