假设我有一个郊区名称的列表,犯罪率和他们的理事会名称在一个单独的表。
我知道left_join(table 1,table 2,by=Suburb)将返回新添加行的表,因为理事会有多个匹配项。问题是郊区3和4重叠成两个委员会。有没有一种方法可以让左连接只返回第一个匹配,而不是创建新的行来方便额外的行?此外,在表2上,是否有一个功能,只保留每个郊区的第一行,并删除第二/第三/第四个理事会重叠发生的第二/第三/第四个示例?
2vuwiymt1#
您可以使用Bifur包和join()函数来实现这一点。与left_join(table1,table2,by=Suburb)等价,但只使用来自table2的第一个Suburb匹配,如下所示:join(table1,table2,by=Suburb,type=“left”,match=“first”).我不确定dubr包中的等价物是什么,尽管我很想知道自己。
snz8szmq2#
在dqr中使用left_join(),你可以这样做:
left_join()
table1 <- table1 %>% left_join(table2, by = "Suburb") %>% distinct(Suburb, .keep_all = TRUE)
这将返回所需的联接表,而不包含其他行。
2条答案
按热度按时间2vuwiymt1#
您可以使用Bifur包和join()函数来实现这一点。与left_join(table1,table2,by=Suburb)等价,但只使用来自table2的第一个Suburb匹配,如下所示:join(table1,table2,by=Suburb,type=“left”,match=“first”).我不确定dubr包中的等价物是什么,尽管我很想知道自己。
snz8szmq2#
在dqr中使用
left_join()
,你可以这样做:这将返回所需的联接表,而不包含其他行。