R lag / lead - как игнорировать строки до и после существующих строк [duplicate]

У меня есть этот кадр данных в R

library(dplyr)

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

С такой функцией

   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

Я получаю в третьей строке NA, поскольку нет четвертой строки, но как я могу получить значение из первой строки - 5? Результат должен выглядеть так:

default

r,dataframe,dplyr,lag,lead,

1

Ответов: 1


2 принят

Мы можем использовать 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)
г, dataframe, dplyr, лаг, свинец,
Похожие вопросы