title: Maps, ggplot2, fill by state is missing certain areas on the map
body: <p>I am working with <code>maps</code> and <code>ggplot2</code> to visualize the number of certain crimes in each state for different years. The data set that I am working with was produced by the FBI and can be downloaded from their site or from <a href="http://www.hofroe.net/stat579/crimes-2012.csv" rel="nofollow noreferrer">here</a> (if you don't want to download the dataset I don't blame you, but it is way too big to copy and paste into this question, and including a fraction of the data set wouldn't help, as there wouldn't be enough information to recreate the graph).</p>
  
  <p>The problem is easier seen than described.</p>
  
  <p><img src="https://i.stack.imgur.com/vi4MR.jpg" alt="Robbery by state"></p>
  
  <p>As you can see California is missing a large chunk as well as a few other states. Here is the code that produced this plot:</p>
  
  <pre><code># load libraries
  library(maps)
  library(ggplot2)
  
  # load data
  fbi &lt;- read.csv("http://www.hofroe.net/stat579/crimes-2012.csv")
  fbi &lt;- subset(fbi, state != "United States")
  states &lt;- map_data("state")
  
  # merge data sets by region
  fbi$region &lt;- tolower(fbi$state)
  fbimap &lt;- merge(fbi, states, by="region")
  
  # plot robbery numbers by state for year 2012
  fbimap12 &lt;- subset(fbimap, Year == 2012)
  qplot(long, lat, geom="polygon", data=fbimap12,
    facets=~Year, fill=Robbery, group=group)
  </code></pre>
  
  <p>This is what the <code>states</code> data looks like:</p>
  
  <pre><code>    long      lat     group order  region subregion
  1 -87.46201 30.38968     1     1 alabama      &lt;NA&gt;
  2 -87.48493 30.37249     1     2 alabama      &lt;NA&gt;
  3 -87.52503 30.37249     1     3 alabama      &lt;NA&gt;
  4 -87.53076 30.33239     1     4 alabama      &lt;NA&gt;
  5 -87.57087 30.32665     1     5 alabama      &lt;NA&gt;
  6 -87.58806 30.32665     1     6 alabama      &lt;NA&gt;
  </code></pre>
  
  <p>And this is what the <code>fbi</code> data looks like:</p>
  
  <pre><code>    Year Population Violent Property Murder Forcible.Rape Robbery
  1 1960    3266740    6097    33823    406           281     898
  2 1961    3302000    5564    32541    427           252     630
  3 1962    3358000    5283    35829    316           218     754
  4 1963    3347000    6115    38521    340           192     828
  5 1964    3407000    7260    46290    316           397     992
  6 1965    3462000    6916    48215    395           367     992
     Aggravated.Assault Burglary Larceny.Theft Vehicle.Theft abbr   state region
  1               4512    11626         19344          2853   AL Alabama  alabama
  2               4255    11205         18801          2535   AL Alabama  alabama
  3               3995    11722         21306          2801   AL Alabama  alabama
  4               4755    12614         22874          3033   AL Alabama  alabama
  5               5555    15898         26713          3679   AL Alabama  alabama
  6               5162    16398         28115          3702   AL Alabama  alabama
  </code></pre>
  
  <p>I then merged the two sets along <code>region</code>. The subset I am trying to plot is</p>
  
  <pre><code>      region Year Robbery      long      lat group
  8283 alabama 2012    5020 -87.46201 30.38968     1
  8284 alabama 2012    5020 -87.48493 30.37249     1
  8285 alabama 2012    5020 -87.95475 30.24644     1
  8286 alabama 2012    5020 -88.00632 30.24071     1
  8287 alabama 2012    5020 -88.01778 30.25217     1
  8288 alabama 2012    5020 -87.52503 30.37249     1
         ...            ...    ...      ...
  </code></pre>
  
  <p>Any ideas on how I can create this plot without those ugly missing spots?</p>