I have data consisting of a single vector / column in a tibble:
my_tibble <- tibble(score = c(1,2,3,4,9,8,7,6,5,4))
For every row of my_tibble$score I want to calculate the difference to the largest "leading" element in the same column. This new column shall be called "difference". For example, the first row of difference should be 1 - 9, while the fifth row should be 9 - 8, and the last row will turn NA, as there is no value coming behind/below the 4.
In the end, the new tibble should look like this:
score | difference
<dbl> <dbl>
1 -8
2 -7
3 -6
4 -5
9 1
8 1
7 1
6 1
5 1
4 NA
I want to achieve this using dplyr and have so far tried many variations of mutate like
my_tibble %>%
mutate(difference = score[which(score > score)])
Hoping to find some way that the second "score" in the which funtction refers to the current row being mutated. However I was unsuccessfull after hours of trying and desperately searching for a solution online.
The closest I found was dplyr: Summing n leading values, however that still leaves me with the problem that I want the difference to the maximum leading value of all leading values, not only of the closest n leading values.
Help and/or referral to whereever this has been answered or addressed before is greatly appreciated!