title: Join of multiple dataframes by multiple variables with data.table
body: <p>So I have seen some answers regarding joining with different packages.
  I need to join several dataframes which is at the moment really expensive operation for my computer to handle with the base "merge" algorithm. </p>
  
  <p>My data:</p>
  
  <pre><code>list.of.data.frames = list( data.table("P1" = c(1:3,1:3), "P2" = c(rep(2.5,3),rep(1.5,3)), "D1" = c(3.5,4.5,5.5,2.5,3.5,4.5)),
                          data.table("P1" = c(1:3,1:3), "P3" = c(rep(2,3),rep(3,3)), "D3" =c(3:5,4:6)),
                          data.table("P1" = c(2:4), "P4" = c(2:4))
                          )
  </code></pre>
  
  <p>I have tried this two codes:<br>
  <em>Using reshape</em></p>
  
  <pre><code>library(reshape)
  merge_recurse(list.of.data.frames)
  </code></pre>
  
  <p><em>Using base R</em></p>
  
  <pre><code>Reduce(function(...) merge(..., all=T), list.of.data.frames)
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>    P1  P2  D1 P3 D3 P4
   1:  1 2.5 3.5  2  3 NA
   2:  1 2.5 3.5  3  4 NA
   3:  2 2.5 4.5  2  4  2
   4:  2 2.5 4.5  3  5  2
   5:  3 2.5 5.5  2  5  3
   6:  3 2.5 5.5  3  6  3
   7:  1 1.5 2.5  2  3 NA
   8:  1 1.5 2.5  3  4 NA
   9:  2 1.5 3.5  2  4  2
   10: 2 1.5 3.5  3  5  2
   11: 3 1.5 4.5  2  5  3
   12: 3 1.5 4.5  3  6  3
   13: 4  NA  NA NA NA  4
  </code></pre>
  
  <p>I am trying to get the fastest method in order to execute this, which can be easily extended to work on a list. For <code>data.table</code> I got stuck with the keys, because each data.frame (or data table) can have a different columns, and some of them may intersect or may not with the other tables..</p>
  
  <p>Also, I saw the <code>data.table::merge.data.table()</code> function, but I don`t know if this is from an older version, because I can not find it in my console.</p>
  
  <p>Any idea how to proceed?</p>
  
  <p>Thank you in advance</p>