title: some sf polygons missing when plotted in ggplot2
body: <p>I'm trying to plot US county-level data, but I can't figure out why some counties do not appear. In this toy example I focus on just California counties, and I leave in all of the daily data until the end when I filter out in the call to <code>ggplot()</code> (my actual use case involves gganimate, so I need the daily data).</p>
  
  <p><a href="https://i.stack.imgur.com/QT2mF.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/QT2mF.png" alt="enter image description here"></a></p>
  
  <pre><code>library(tidyverse)
  library(sf)
  library(viridis)
  library("rio")
  
  # get county geometry
    url &lt;- "https://gist.githubusercontent.com/ericpgreen/717596c37478ef894c14b250477fae92/raw/c2cf4b273a2c7f0677f22a37b5e9f7e893204e3b/cali.R"
    cali &lt;- rio::import(url)
  
  # get covid data
    covid &lt;- read.csv("https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-counties.csv", 
                      stringsAsFactors = FALSE)
  
  # prep covid data
    covidPrepped &lt;-
    covid %&gt;%
      filter(state=="California") %&gt;%
      select(date, fips, cases, deaths) %&gt;%
      mutate(date = lubridate::ymd(date)) %&gt;%
      mutate(fips = stringr::str_pad(fips, width=5, pad="0")) %&gt;%
      mutate(month = lubridate::month(date, 
                                      label=TRUE, 
                                      abbr=TRUE),
             day = lubridate::day(date),
             monthDay = paste(month, day, sep=" "))
  
  # make sure every county has a row for every day
    complete &lt;- 
    cali %&gt;%
      left_join(covidPrepped, by = c("GEOID" = "fips")) %&gt;%
      complete(date, GEOID, fill = list(cases = 0)) %&gt;%
      select(date, GEOID, cases, monthDay)
  
  # join back to geometry and construct casesPop
    pData &lt;- 
    complete %&gt;%
      left_join(select(cali, GEOID, NAME, estimate, geometry),
                by = "GEOID") %&gt;%
      st_as_sf() %&gt;%
      mutate(casesPop = (cases/estimate)*100000) %&gt;%
      mutate(casesPop = ifelse(is.na(casesPop), 0, casesPop)) %&gt;%
      mutate(group = cut(casesPop, 
                         breaks = c(0, 1, 3, 10, 30, 100, 
                                    300, 1000, 3000, 10000, 
                                    Inf),
                         labels = c(0, 1, 3, 10, 30, 100, 
                                    300, 1000, 3000, 10000),
                         include.lowest = TRUE)
      ) %&gt;%
      select(GEOID, geometry, group, monthDay) 
  
  # plot
    ggplot(pData %&gt;% filter(monthDay=="May 5")) +
      geom_sf(aes(fill = group), color = "white", size=.1) +
      scale_fill_viridis_d(option = "magma", drop=FALSE) +
      coord_sf(crs = 102003) +
      theme_minimal() + 
      theme(legend.position = "top",
            legend.box = "horizontal",
            legend.title = element_blank(),
            legend.justification='left') +
      guides(fill = guide_legend(nrow = 1))
  </code></pre>
  
  <p>Missing counties:</p>
  
  <pre><code>missing &lt;- pData %&gt;% filter(monthDay=="May 5")
  cali$GEOID[!(cali$GEOID %in% test$GEOID)]
  #[1] "06035" "06049" "06091" "06105"
  </code></pre>
  
  <p>These counties do not have <code>covid</code> data for May 5, but I thought this would be addressed by the call to <code>complete()</code>.</p>
  
  <p><code>complete(date, GEOID, fill = list(cases = 0))</code></p>