title: Adding a row with incomplete observations to a data.frame
body: <p>Suppose I have the following <code>data.frame</code>:</p>
  
  <pre><code>    foo &lt;- data.frame(ocean=c('Atlantic', 'Pacific'), 
          city=c('Boston', 'San Francisco'), 
          state=c('MA', 'CA'), stringsAsFactors=F)
  </code></pre>
  
  <p>I would like to add a third row, but in this case, only specify the city and leave the other fields blank.</p>
  
  <p>Some naive ways, which do not work include:</p>
  
  <pre><code>foo$city[3] &lt;- 'Providence'
  # generates an error message about replacement has 3 rows, data has 2
  </code></pre>
  
  <p>This also generates an error message</p>
  
  <pre><code>rbind(foo, data.frame(city='Providence'))
  # generates an error message, number of columns of arguments do not match
  </code></pre>
  
  <p>I'm interested in how other users would approach this.</p>