title: How does one do a full join using data.table?
body: <p>In the <a href="http://datatable.r-forge.r-project.org/datatable-faq.pdf" rel="noreferrer"><code>data.table</code> FAQ</a>, the <code>nomatch = NA</code> parameter is said to be akin to an outer join. However, I haven't been able to get <code>data.table</code> to do a <em>full</em> outer join – only right outer joins.</p>
  
  <p>For example:</p>
  
  <pre><code>a &lt;- data.table("dog" = c(8:12), "cat" = c(15:19))
  
     dog cat
  1:   8  15
  2:   9  16
  3:  10  17
  4:  11  18
  5:  12  19
  
  b &lt;- data.table("dog" = 1:10, "bullfrog" = 11:20)
  
      dog bullfrog
   1:   1       11
   2:   2       12
   3:   3       13
   4:   4       14
   5:   5       15
   6:   6       16
   7:   7       17
   8:   8       18
   9:   9       19
  10:  10       20
  
  setkey(a, dog)
  setkey(b, dog)
  
  a[b, nomatch = NA]
  
      dog cat bullfrog
   1:   1  NA       11
   2:   2  NA       12
   3:   3  NA       13
   4:   4  NA       14
   5:   5  NA       15
   6:   6  NA       16
   7:   7  NA       17
   8:   8  15       18
   9:   9  16       19
  10:  10  17       20
  </code></pre>
  
  <p>So, <code>nomatch = NA</code> produces a right outer join (which is the default). What if I need a full join? For example:</p>
  
  <pre><code>merge(a, b, by = "dog", all = TRUE) 
  # Or with plyr:
  join(a, b, by = "dog", type = "full")
  
      dog cat bullfrog
   1:   1  NA       11
   2:   2  NA       12
   3:   3  NA       13
   4:   4  NA       14
   5:   5  NA       15
   6:   6  NA       16
   7:   7  NA       17
   8:   8  15       18
   9:   9  16       19
  10:  10  17       20
  11:  11  18       NA
  12:  12  19       NA
  </code></pre>
  
  <p>Is that possible with <code>data.table</code>?</p>