У меня есть данные, состоящие из одного вектора / столбца в таблице:
my_tibble <- tibble(score = c(1,2,3,4,9,8,7,6,5,4))
Для каждой строки my_tibble $ score я хочу вычислить разницу с самым большим «ведущим» элементом в том же столбце . Этот новый столбец будет называться «разница». Например, первая строка разницы должна быть 1–9, а пятая строка должна быть 9–8, а последняя строка изменится на NA, так как нет значения, идущего позади / ниже 4.
В конце концов, новый тиббл должен выглядеть так:
score | difference
<dbl> <dbl>
1 -8
2 -7
3 -6
4 -5
9 1
8 1
7 1
6 1
5 1
4 NA
Я хочу добиться этого с помощью dplyr и до сих пор пробовал множество вариантов mutate, например
my_tibble %>%
mutate(difference = score[which(score > score)])
Надеясь найти каким-то образом, чтобы вторая «оценка» в функции which ссылалась на текущую изменяемую строку. Однако я потерпел неудачу после нескольких часов попыток и отчаянных поисков решения в Интернете.
Ближайшее, что я нашел, было dplyr: суммирование n ведущих значений , однако это все еще оставляет меня с проблемой, которую я хотите разницы в максимальном ведущем значении всех ведущих значений, а не только ближайших n ведущих значений.
Помощь и / или отсылка к тому, где на этот вопрос уже были даны ответы или адресованы, приветствуются!