0

I have a data frame similar to this

mydf =  data_frame(letter = rep(c("a", "b", "c"), each =5), 
                 var1 = sample(1:25, 15, replace = TRUE))

# A tibble: 15 x 2
   letter  var1
   <chr>  <int>
 1 a         16
 2 a          9
 3 a          5
 4 a         14
 5 a          6
 6 b         13
 7 b          9
 8 b         20
 9 b         18
10 b          4
11 c         18
12 c         11
13 c          9
14 c          1
15 c         12

I know I can get the immediate value from the previous row with dplyr::lag(). However, I am trying to obtain a similar solution to obtain the third value before each observation. The expected result should look like this:

# A tibble: 15 x 3
# Groups:   letter [3]
   letter  var1  var2
   <chr>  <int> <dbl>
 1 a         16   NA 
 2 a          9   NA
 3 a          5   16
 4 a         14    9
 5 a          6    5
 6 b         13   NA 
 7 b          9   NA
 8 b         20   13

Thanks in advance

Edu
  • 903
  • 6
  • 17

0 Answers0