Thanks for your quick response. It seems if we use tribble, answer is different
sample_data <- tribble(~A, ~B, ~C, ~ Date, ~ Result,
"AL",123,"12", as.Date("2014-02-01"), 12345,
"AL",123,"12", as.Date("2014-04-01"), 12349,
"AL",123,"12", as.Date("2014-06-01"), 12977,
"AZ",123,"12", as.Date("2014-01-01"),23435,
"AZ",123,"12", as.Date("2014-04-01"),453454,
"AZ",123,"12", as.Date("2014-07-01"),123976)
sample_data %<>% complete(Date = seq.Date(min(Date), max(Date), by="month"))
tidyr::complete(data = sample_data,
tidyr::nesting(A, B, C), Date = seq.Date(from = min(Date),
to = max(Date),
by = "month"))
# A tibble: 21 x 5
A B C Date Result
<chr> <dbl> <chr> <date> <dbl>
1 AL 123 12 2014-01-01 NA
2 AL 123 12 2014-02-01 12345
3 AL 123 12 2014-03-01 NA
4 AL 123 12 2014-04-01 12349
5 AL 123 12 2014-05-01 NA
6 AL 123 12 2014-06-01 12977
7 AL 123 12 2014-07-01 NA
8 AZ 123 12 2014-01-01 23435
9 AZ 123 12 2014-02-01 NA
10 AZ 123 12 2014-03-01 NA
# … with 11 more rows
# Leads to unnecessary rows !