R lag / lead-如何忽略现有行之前和之后的行

时间:2018-07-07 19:47:21

标签: r dataframe dplyr lag lead

我在R中有这个数据框

   id      a        b        c        d
1  42      3        2       NA        5
2  42     NA        6       NA        6
3  42      1       NA        7        8

具有这样的功能

library(dplyr)

dataframe %>%
 mutate(e = lead(d)) 

由于没有第四行,所以我到达第三行NA,但是如何从第一行获得值-5?结果应该像这样

   id      a        b        c        d         e
1  42      3        2       NA        5         6
2  42     NA        6       NA        6         8
3  42      1       NA        7        8         5

1 个答案:

答案 0 :(得分:3)

我们可以在first函数的default参数中使用lead函数。

library(dplyr)

dat2 <- dat %>%
  mutate(e = lead(d, default = first(d)))
dat2
#   id  a  b  c d e
# 1 42  3  2 NA 5 6
# 2 42 NA  6 NA 6 8
# 3 42  1 NA  7 8 5

数据

dat <- read.table(text = "   id      a        b        c        d
1  42      3        2       NA        5
2  42     NA        6       NA        6
3  42      1       NA        7        8",
                  header = TRUE)