连接两个表,以便我们从tableA获得所有行,并从tableB获得匹配行的所有列

时间:2019-06-25 04:37:06

标签: r join data.table

联接两个表,以便我们从tableA获得所有行,并从tableB获得匹配行的所有列

我想使用data.table而不是data.Frame。请提出最快的方法。

<div class="container h-100">
 <form method="POST" action="jq.php">
  <div class="d-flex justify-content-center h-100">
   <div class="searchbar">
      <input class="search_input" type="text" name="" placeholder="Search...">
      <a href="#" class="search_icon"><i class="fas fa-search"></i></a>
    </div>
  </div>
  </form>
</div>

预期结果:

tableA <- data.table(column1 = c( 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9))

tableB <- data.table(column1 = c( 1.0, 1.2, 1.5, 1.9), column2 = c( "A", "B", "C", "D"), column3 = c( "AA", "BB", "CC", "DD"))

2 个答案:

答案 0 :(得分:1)

您只需要反转联接的顺序:

tableB[tableA, on = "column1"]

答案 1 :(得分:1)

使用较大的数据集时,最好执行更新联接,避免创建新对象...

tableA[tableB, `:=`( column2 = i.column2, column3 = i.column3), on = .(column1)][]

将基于两个表的列1中的值将表B中的column2和column3添加到tableA中。