title: Assign and use data values of Spatial*DataFrame easily
body: <p>Is it possible to somehow easily work with data in <code>Spatial*DataFrame</code> (* = Points, Lines, Polygons, Pixels, Grid,...)? In particular I have difficulties with assigning values to it and to operate with them:</p>
  
  <pre><code>require(gstat)
  data(meuse)
  coordinates(meuse) = ~x+y
  data(meuse.grid)
  gridded(meuse.grid) = ~x+y
  
  ######## 1) assigning value
  
  meuse[1,'zinc'] &lt;- NA
  # Error in meuse[1, "zinc"] &lt;- NA : object of type 'S4' is not subsettable
  as.data.frame(meuse)[1,'zinc'] &lt;- NA
  # Error in as.data.frame(meuse)[1, "zinc"] &lt;- NA : 
  #   could not find function "as.data.frame&lt;-"
  
  ######## 2) operating with values
  
  meuse[, 'zinc'] + 2
  # Error in meuse[, "zinc"] + 2 : non-numeric argument to binary operator
  </code></pre>
  
  <p>I have found pretty ugly workarounds for both cases:</p>
  
  <pre><code># ad 1)
  meuse2 &lt;- as.data.frame(meuse)
  meuse2[1, 'zinc'] &lt;- NA
  meuse2 &lt;- SpatialPointsDataFrame(SpatialPoints(meuse), meuse2)
  
  # ad 2)
  as.data.frame(meuse)[, 'zinc'] + 2
  </code></pre>
  
  <p>but these are just beginners' attempts, way too ugly and complicated... Must be much easier in R!</p>