title: Make rbindlist skip, ignore or change class attribute of the column
body: <p>I would like to merge a large set of dataframes (about 30), which each have about 200 variables. These datasets are very much alike but not identical.</p>
  
  <p>Please find two example dataframes below:</p>
  
  <pre><code>library(data.table)
  library(haven)
  df1 &lt;- fread(
      "A   B   C  iso   year   
       0   B   1  NLD   2009   
       1   A   2  NLD   2009   
       0   Y   3  AUS   2011   
       1   Q   4  AUS   2011   
       0   NA  7  NLD   2008   
       1   0   1  NLD   2008   
       0   1   3  AUS   2012",
    header = TRUE
  )
  df2 &lt;- fread(
      "A   B   D  E  iso   year   
       0   1   1  NA ECU   2009   
       1   0   2  0  ECU   2009   
       0   0   3  0  BRA   2011   
       1   0   4  0  BRA   2011   
       0   1   7  NA ECU   2008   
       1   0   1  0  ECU   2008   
       0   0   3  2  BRA   2012   
       1   0   4  NA BRA   2012",
    header = TRUE
  )
  </code></pre>
  
  <p>To recreate the error:</p>
  
  <pre><code>class(df2$B) &lt;- "anything"
  </code></pre>
  
  <p>When I do the following </p>
  
  <pre><code>df_merged &lt;- rbindlist(list(df1, df2), fill=TRUE, use.names=TRUE)
  </code></pre>
  
  <p>The dataset gives the error:</p>
  
  <pre><code>Error in rbindlist(list(df1, df2), fill = TRUE, use.names = TRUE) : 
    Class attribute on column 2 of item 2 does not match with column 2 of item 1.
  </code></pre>
  
  <p>What can I do to either:</p>
  
  <ol>
  <li>Make <code>rbindlist</code> skip the column which does not match and add some suffix.</li>
  <li>Change the class of one of the columns to the other one.</li>
  </ol>
  
  <p>Desired result for option 1:</p>
  
  <pre><code>df_merged &lt;- fread(
      "A   B  B.x  C  D   E   iso   year   
       0   A   NA  1  NA  NA  NLD   2009   
       1   Y   NA  2  NA  NA  NLD   2009   
       0   Q   NA  3  NA  NA  AUS   2011   
       1   NA  NA  4  NA  NA  AUS   2011   
       0   0   NA  7  NA  NA  NLD   2008   
       1   1   NA  1  NA  NA  NLD   2008   
       0   1   NA  3  NA  NA  AUS   2012   
       0   NA  1   NA  1  NA  ECU   2009   
       1   NA  0   NA  2  0   ECU   2009   
       0   NA  0   NA  3  0   BRA   2011   
       1   NA  0   NA  4  0   BRA   2011   
       0   NA  1   NA  7  NA  ECU   2008   
       1   NA  0   NA  1  0   ECU   2008   
       0   NA  0   NA  3  2   BRA   2012   
       1   NA  0   NA  4  NA  BRA   2012",
     header = TRUE
  )
  </code></pre>
  
  <p>Desired result for option 2:</p>
  
  <pre><code>df_merged &lt;- fread(
      "A   B   C  D   E   iso   year   
       0   3   1  NA  NA  NLD   2009   
       1   4   2  NA  NA  NLD   2009   
       0   5   3  NA  NA  AUS   2011   
       1   5   4  NA  NA  AUS   2011   
       0   0   7  NA  NA  NLD   2008   
       1   1   1  NA  NA  NLD   2008   
       0   1   3  NA  NA  AUS   2012   
       0   1   NA  1  NA  ECU   2009   
       1   0   NA  2  0   ECU   2009   
       0   0   NA  3  0   BRA   2011   
       1   0   NA  4  0   BRA   2011   
       0   1   NA  7  NA  ECU   2008   
       1   0   NA  1  0   ECU   2008   
       0   0   NA  3  2   BRA   2012   
       1   0   NA  4  NA  BRA   2012",",
     header = TRUE
  )
  </code></pre>