
Complete with zeroes
complete_zeroes.RdTakes a tbl.now object and completes observations
for event_dates or report_dates that have not been registered
(by each strata) with a 0.
Examples
ndata <- dplyr::tibble(
event = rep(c(
as.Date("2020/01/01"), as.Date("2020/01/01"),
as.Date("2020/01/02"), as.Date("2020/01/04"),
as.Date("2020/01/04")
), 2),
report = rep(c(
as.Date("2020/01/01"), as.Date("2020/01/02"),
as.Date("2020/01/02"), as.Date("2020/01/04"),
as.Date("2020/01/05")
), 2),
n = rpois(10, lambda = 5),
sex = c(rep("Male", 5), rep("Female", 5))
)
ndata <- tbl_now(ndata,
event_date = event, report_date = report,
verbose = FALSE, strata = sex, case_count = n, data_type = "count-incidence"
)
# Notice that ndata has no 2020-01-03 event date
ndata
#> # A tibble: 10 × 7
#> # Data type: "count-incidence"
#> # Frequency: Event: `days` | Report: `days`
#> event report n sex .event_num .report_num .delay
#> <date> <date> <int> <chr> <dbl> <dbl> <dbl>
#> [event_date] [report_date] [cases] [strata] [...] [...] [...]
#> 1 2020-01-01 2020-01-01 9 Male 0 0 0
#> 2 2020-01-01 2020-01-02 6 Male 0 1 1
#> 3 2020-01-02 2020-01-02 4 Male 1 1 0
#> 4 2020-01-04 2020-01-04 8 Male 3 3 0
#> 5 2020-01-04 2020-01-05 2 Male 3 4 1
#> 6 2020-01-01 2020-01-01 6 Female 0 0 0
#> 7 2020-01-01 2020-01-02 4 Female 0 1 1
#> 8 2020-01-02 2020-01-02 9 Female 1 1 0
#> 9 2020-01-04 2020-01-04 1 Female 3 3 0
#> 10 2020-01-04 2020-01-05 4 Female 3 4 1
#> # ────────────────────────────────────────────────────────────────────────────────
#> # Now: 2020-01-05 | Event date: "event" | Report date: "report"
#> # Strata: "sex"
#> # ────────────────────────────────────────────────────────────────────────────────
# But complete zeroes adds it with a 0
complete_zeroes(ndata)
#> # A tibble: 14 × 7
#> # Data type: "count-incidence"
#> # Frequency: Event: `days` | Report: `days`
#> event report n sex .event_num .report_num .delay
#> <date> <date> <int> <chr> <int> <dbl> <dbl>
#> [event_date] [report_date] [cases] [strata] [...] [...] [...]
#> 1 2020-01-01 2020-01-01 9 Male 0 0 0
#> 2 2020-01-01 2020-01-02 6 Male 0 1 1
#> 3 2020-01-02 2020-01-02 4 Male 1 1 0
#> 4 2020-01-04 2020-01-04 8 Male 3 3 0
#> 5 2020-01-01 2020-01-01 6 Female 0 0 0
#> 6 2020-01-01 2020-01-02 4 Female 0 1 1
#> 7 2020-01-02 2020-01-02 9 Female 1 1 0
#> 8 2020-01-04 2020-01-04 1 Female 3 3 0
#> 9 2020-01-02 2020-01-03 0 Male 1 2 1
#> 10 2020-01-02 2020-01-03 0 Female 1 2 1
#> 11 2020-01-03 2020-01-03 0 Male 2 2 0
#> 12 2020-01-03 2020-01-03 0 Female 2 2 0
#> 13 2020-01-03 2020-01-04 0 Male 2 3 1
#> 14 2020-01-03 2020-01-04 0 Female 2 3 1
#> # ────────────────────────────────────────────────────────────────────────────────
#> # Now: 2020-01-05 | Event date: "event" | Report date: "report"
#> # Strata: "sex"
#> # ────────────────────────────────────────────────────────────────────────────────
# Also works for count-cumulative
ndata |>
to_count("count-cumulative") |>
complete_zeroes() |>
dplyr::arrange(event, sex, report)
#> # A tibble: 14 × 7
#> # Data type: "count-cumulative"
#> # Frequency: Event: `days` | Report: `days`
#> event report .event_num .report_num sex n .delay
#> <date> <date> <dbl> <dbl> <chr> <dbl> <dbl>
#> [event_date] [report_date] [...] [...] [strata] [cases] [...]
#> 1 2020-01-01 2020-01-01 0 0 Female 6 0
#> 2 2020-01-01 2020-01-02 0 1 Female 10 1
#> 3 2020-01-01 2020-01-01 0 0 Male 9 0
#> 4 2020-01-01 2020-01-02 0 1 Male 15 1
#> 5 2020-01-02 2020-01-02 1 1 Female 9 0
#> 6 2020-01-02 2020-01-03 1 2 Female 9 1
#> 7 2020-01-02 2020-01-02 1 1 Male 4 0
#> 8 2020-01-02 2020-01-03 1 2 Male 4 1
#> 9 2020-01-03 2020-01-03 2 2 Female 0 0
#> 10 2020-01-03 2020-01-04 2 3 Female 0 1
#> 11 2020-01-03 2020-01-03 2 2 Male 0 0
#> 12 2020-01-03 2020-01-04 2 3 Male 0 1
#> 13 2020-01-04 2020-01-04 3 3 Female 1 0
#> 14 2020-01-04 2020-01-04 3 3 Male 8 0
#> # ────────────────────────────────────────────────────────────────────────────────
#> # Now: 2020-01-05 | Event date: "event" | Report date: "report"
#> # Strata: "sex"
#> # ────────────────────────────────────────────────────────────────────────────────