根据 R 数据框中的变量填充 N 个滞后

Fill in N lags based on a variable in R data frame

我的数据框中有两列,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 中使用 lead 函数,但不幸的是,似乎所有的 leads 必须具有相同的编号。

使用索引

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

其中 seq_along(value) 给出行号,通过添加到 num_leads 可以提取正确的值

这是我想出的:

 df1$result <- df1$value[df1$value + df1$num_leads]