Заполните N лагов на основе переменной в фрейме R - PullRequest
0 голосов
/ 23 декабря 2018

В моем фрейме данных есть два столбца: value и num_leads.Я хотел бы создать третий столбец, в котором будет храниться значение значения из n строк ниже - где n - это любое число, хранящееся в num_leads.Вот пример:

df1 <- data.frame(value = c(1:5),
                  num_leads = c(2, 3, 1, 1, 0))

Желаемый вывод:

  value num_leads  result
1     1         2       3
2     2         3       5
3     3         1       4
4     4         1       5
5     5         0       5

Я пытался использовать функцию отведений в dplyr, но, к сожалению, кажется, что все отведения должны иметь одинаковое число.

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018

Вот что я придумал:

 df1$result <- df1$value[df1$value + df1$num_leads]
0 голосов
/ 23 декабря 2018

с использованием индексации

with(df1, value[seq_along(value) + num_leads])

, где seq_along(value) дает номер строки, и, добавив к num_leads, вы можете извлечь правильное значение

...