在我的数据中,在某些月份中存在对某些 ID 的观察,而对其他 ID 则没有观察到,例如
dat <- data.frame(c(1, 1, 1, 2, 3, 3, 3, 4, 4, 4), c(rep(30, 2), rep(25, 5), rep(20, 3)), c('2017-01-01', '2017-02-01', '2017-04-01', '2017-02-01', '2017-01-01', '2017-02-01', '2017-03-01', '2017-01-01',
'2017-02-01', '2017-04-01'))
colnames(dat) <- c('id', 'value', 'date')
我愿意为每一个id
值,插入一行,其中包含该值缺少的月份id
and NA
for value
.
有没有办法(在某种程度上)简洁地在所有月份中执行此操作seq(min(as.Date(dat$date)), max(as.Date(dat$date)), by = 'months')
?我经常使用 tidyverse 和 data.table,但我对任何方法都持开放态度。