【问题标题】:R dplyr left join - multiple returned values and new rows: how to ask for the first match only?R dplyr left join - 多个返回值和新行:如何只要求第一个匹配项?
【发布时间】:2017-02-24 06:12:21
【问题描述】:

假设我在单独的表格中有一个郊区名称、犯罪率及其议会名称的列表。

我知道 left_join(table1, table2, by=Suburb) 将返回包含新添加行的表,因为理事会有多个匹配项。问题是郊区 3 和 4 重叠成两个议会。

有没有办法只让左连接只返回第一个匹配项而不是创建新行以方便额外的行?

另外,在表2中,是否有只保留每个郊区的第一行并删除第二/第三/第四个议会重叠发生的第二/第三/第四个实例的功能?

【问题讨论】:

  • 加入前可以过滤表格吗?这样你就可以明确地选择你想要的。
  • 如果行重复,您可以尝试使用distinct()删除多个实例。

标签: r dplyr


【解决方案1】:

您可以使用 plyr 包和 join() 函数来执行此操作。等价于 left_join(table1, table2, by=Suburb) 但仅使用来自 table2 的第一个 Suburb 匹配将是:join(table1, table2, by=Suburb, type="left", match="first")。我不确定 dplyr 包中的等价物是什么,但我很想知道自己。

【讨论】:

  • 应该是:by="Suburb"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多