根据R数据帧中的变量填写N个滞后

时间:2018-12-22 21:27:59

标签: r dataframe lag

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

2 个答案:

答案 0 :(得分:2)

使用索引

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

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

答案 1 :(得分:1)

这是我想出的:

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