title: Unseen factor levels when appending new records with unseen string values to a dataframe, cause Warning and result in NA
body: <p>I have a dataframe (14.5K rows by 15 columns) containing billing data from 2001 to 2007.</p>
  
  <p>I append new 2008 data to it with: <code>alltime &lt;- rbind(alltime,all2008)</code></p>
  
  <p>Unfortunately that generates a warning:</p>
  
  <pre><code>&gt; Warning message:
  In `[&lt;-.factor`(`*tmp*`, ri, value = c(NA, NA, NA, NA, NA, NA, NA,  :
    invalid factor level, NAs generated
  </code></pre>
  
  <p>My guess is that there are some new patients whose names were not in the previous dataframe and therefore it would not know what level to give those. Similarly new unseen names in the 'referring doctor' column.</p>
  
  <p>What's the solution?</p>