Предполагая, что у вас есть данные в data.frame
, называемом dat1
:
dat1 <- data.frame(
date = as.Date(c("2001-09-01", "2001-10-01", "2001-12-01", "2002-02-01")),
val = 1:4
)
Затем вы можете создать второй data.frame
, который содержит один столбец со всеми нужными вам датами.Используйте seq.Date
для создания этой последовательности:
dat2 <- data.frame(
date = seq(as.Date("2001-09-01"), by="1 month", length.out=7)
)
Тогда это простая merge
операция:
merge(dat1, dat2, all=TRUE)
date val
1 2001-09-01 1
2 2001-10-01 2
3 2001-11-01 NA
4 2001-12-01 3
5 2002-01-01 NA
6 2002-02-01 4
7 2002-03-01 NA
Пропущенные значения NA
, но вы можете использовать подмножествоустановить их на 0, если хотите.