У меня есть пример ниже.Как сделать то же самое с data.table
?
df <- data.frame(person = c(1,2,2),
observation_id = c(3,3,5),
value = c(1,1,1),
ind1 = c(2,4,4),
ind2 = c(5,7,7))
df %>%
group_by(person) %>%
tidyr::complete(observation_id = first(ind1):first(ind2), tidyr::nesting(person)) %>%
tidyr::fill(value)
Ожидаемый результат:
# A tibble: 8 x 5
# Groups: person [2]
observation_id person value ind1 ind2
<dbl> <dbl> <dbl> <dbl> <dbl>
1 2 1 NA NA NA
2 3 1 1 2 5
3 4 1 1 NA NA
4 5 1 1 NA NA
5 4 2 NA NA NA
6 5 2 1 4 7
7 6 2 1 NA NA
8 7 2 1 NA NA
Спасибо за совет!