Я пытаюсь преобразовать функцию dplyr, которую я имею, в data.table, и мне сложно добиться четности. Любая помощь высоко ценится!
Данные
DT = data.table(
"brk" = 1L,
"est" = c(900, 900, 1000, 1000, 1100),
"t" = c(0, 12, 15, 22, 30)
)
желаемый результат
Desired_DT = data.table(
"brk" = 1L,
"est" = c(900, 900, 1000, 1000, 1100),
"t" = c(0, 12, 15, 22, 30),
"prev_est" = c(NA, NA , 900, 900, 1000),
"prev_est_age" = c(NA, NA, 15, 22, 15)
)
один из возможных способов dplyr
DT %>%
left_join(
DT %>%
group_by(est) %>%
slice(1) %>%
ungroup() %>%
mutate(
prev_est = lag(n = 1L, est),
prev_t = lag(n = 1L, t)
)
) %>% tidyr::fill(.data$prev_est, .data$prev_t) %>%
mutate(prev_est_age = t - prev_t)