R语言 左连接-多个返回值和新行:如何只要求第一场比赛?

omqzjyyz  于 2023-10-13  发布在  其他
关注(0)|答案(2)|浏览(92)

假设我有一个郊区名称的列表,犯罪率和他们的理事会名称在一个单独的表。

我知道left_join(table 1,table 2,by=Suburb)将返回新添加行的表,因为理事会有多个匹配项。问题是郊区3和4重叠成两个委员会。
有没有一种方法可以让左连接只返回第一个匹配,而不是创建新的行来方便额外的行?
此外,在表2上,是否有一个功能,只保留每个郊区的第一行,并删除第二/第三/第四个理事会重叠发生的第二/第三/第四个示例?

2vuwiymt

2vuwiymt1#

您可以使用Bifur包和join()函数来实现这一点。与left_join(table1,table2,by=Suburb)等价,但只使用来自table2的第一个Suburb匹配,如下所示:join(table1,table2,by=Suburb,type=“left”,match=“first”).我不确定dubr包中的等价物是什么,尽管我很想知道自己。

snz8szmq

snz8szmq2#

在dqr中使用left_join(),你可以这样做:

table1 <- table1 %>% 
  left_join(table2, by = "Suburb") %>% 
  distinct(Suburb, .keep_all = TRUE)

这将返回所需的联接表,而不包含其他行。

相关问题