title: Merge multiple data tables with duplicate column names
body: <p>I am trying to merge (join) multiple data tables (obtained with fread from 5 csv files) to form a single data table. I get an error when I try to merge 5 data tables, but works fine when I merge only 4. MWE below:</p>
  
  <pre><code># example data
  DT1 &lt;- data.table(x = letters[1:6], y = 10:15)
  DT2 &lt;- data.table(x = letters[1:6], y = 11:16)
  DT3 &lt;- data.table(x = letters[1:6], y = 12:17)
  DT4 &lt;- data.table(x = letters[1:6], y = 13:18)
  DT5 &lt;- data.table(x = letters[1:6], y = 14:19)
  
  # this gives an error
  Reduce(function(...) merge(..., all = TRUE, by = "x"), list(DT1, DT2, DT3, DT4, DT5))
  </code></pre>
  
  <blockquote>
    <p>Error in merge.data.table(..., all = TRUE, by = "x") :  x has some
    duplicated column name(s): y.x,y.y. Please remove or rename the 
    duplicate(s) and try again.</p>
  </blockquote>
  
  <pre><code># whereas this works fine
  Reduce(function(...) merge(..., all = TRUE, by = "x"), list(DT1, DT2, DT3, DT4))
  
      x y.x y.y y.x y.y 
   1: a  10  11  12  13 
   2: b  11  12  13  14 
   3: c  12  13  14  15 
   4: d  13  14  15  16 
   5: e  14  15  16  17 
   6: f  15  16  17  18
  </code></pre>
  
  <p>I have a workaround, where, if I change the 2nd column name for DT1:</p>
  
  <pre><code>setnames(DT1, "y", "new_y")
  
  # this works now
  Reduce(function(...) merge(..., all = TRUE, by = "x"), list(DT1, DT2, DT3, DT4, DT5))
  </code></pre>
  
  <p>Why does this happen, and is there any way to merge an arbitrary number of data tables with the same column names without changing any of the column names?</p>