title: lag function returns NAs
body: <p>Does anybody have an explanation for such result using <code>dplyr</code> package?</p>
  
  <p>I have a data.frame <code>df</code> </p>
  
  <pre><code>    library(dplyr)
      df = data_frame(
        'id' = c(1,2,2,2,2,3,3,3,3),
        'start' = c(881, 1611, 1611, 1642, 1764, 0, 0, 28, 59),
        'end' = c(1089, 1819, 1819, 1850, 1972, 208,  208,236, 267))
  </code></pre>
  
  <p>That looks like</p>
  
  <pre><code>    # Source: local data frame [9 x 3]
      #
      # id start   end
      # (dbl) (dbl) (dbl)
      # 1     1   881  1089
      # 2     2  1611  1819
      # 3     2  1611  1819
      # 4     2  1642  1850
      # 5     2  1764  1972
      # 6     3     0   208
      # 7     3     0   208
      # 8     3    28   236
      # 9     3    59   267
  </code></pre>
  
  <p>After grouping by <code>id</code> and applying a lag in end column, I was expecting to have one missing for each <code>id</code>.</p>
  
  <pre><code>    df %&gt;% 
        group_by(id) %&gt;%
        mutate(end.prev = lag(end))
  </code></pre>
  
  <p>But I have </p>
  
  <pre><code>    # Source: local data frame [9 x 4]
      # Groups: id [3]
      # 
      # id start   end end.prev
      # (dbl) (dbl) (dbl)    (dbl)
      # 1     1   881  1089       NA
      # 2     2  1611  1819       NA
      # 3     2  1611  1819     1819
      # 4     2  1642  1850     1819
      # 5     2  1764  1972     1850
      # 6     3     0   208       NA
      # 7     3     0   208       NA  &lt;- I don't understant this NA
      # 8     3    28   236       NA  &lt;- Neither this one
      # 9     3    59   267       NA  &lt;- nor this other
  </code></pre>
  
  <p>I am using the last version available in cran dplyr 0.4.3 (my R version is 3.2.5)</p>