【发布时间】:2019-07-01 09:21:06
【问题描述】:
我有下面的例子。如何用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
谢谢你的建议!
【问题讨论】:
标签: r data.table tidyverse