Skip to content

Commit

Permalink
ungroup and then regroup
Browse files Browse the repository at this point in the history
  • Loading branch information
seabbs committed Feb 4, 2022
1 parent d75476b commit 412d544
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 8 deletions.
14 changes: 11 additions & 3 deletions R/processing.R
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,23 @@ set_negative_values_to_zero <- function(data) {
#' @family compulsory_processing
#' @concept compulsory_processing
#' @importFrom tidyr complete full_seq nesting
#' @importFrom dplyr starts_with
#' @importFrom dplyr starts_with group_by ungroup
#' @importFrom rlang !!! syms
fill_empty_dates_with_na <- function(data) {
regions <- select(data, starts_with("level_")) %>%
names()

groups <- attributes(data)$groups
groups <- colnames(groups)
groups <- setdiff(groups, ".rows")

data <- data %>%
ungroup() %>%
complete(
date = full_seq(data$date, period = 1)
)
date = full_seq(data$date, period = 1),
nesting(!!!syms(regions))
) %>%
group_by(across(.cols = all_of(groups)))
return(data)
}

Expand Down
2 changes: 1 addition & 1 deletion tests/testthat/custom_tests/mock_data.R
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ get_expected_data_for_fill_empty_dates_with_na_test <- function() {
dplyr::left_join(region_codes, by = c("level_1_region" = "region"))
expected_data$cases <- c(1:5, rep(NA, 4), 10:12)
expected_data <- dplyr::select(
expected_data, level_1_region, level_1_region_code, date, everything()
expected_data, date, level_1_region, level_1_region_code, everything()
)
return(dplyr::tibble(expected_data))
}
Expand Down
9 changes: 5 additions & 4 deletions tests/testthat/test-processing.R
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ test_that("fill_empty_dates_with_na fills empty dates with NA", {
# partial data deletes some rows (i.e. gets rid of some dates - all the ones
# with NA in cases)
expected_data <- expected_data %>%
dplyr::group_by(, level_1_region, level_1_region_code)
dplyr::group_by(level_1_region, level_1_region_code)

partial_data <- expected_data[-c(6:9), ]
expect_equal(
Expand All @@ -93,14 +93,15 @@ test_that("fill_empty_dates_with_na fills empty dates with NA", {
level_2_region = level_1_region,
level_2_region_code = level_1_region_code
) %>%
group_by(level_2_region, level_2_region_code) %>%
select(
date, level_2_region, level_2_region_code,
level_1_region, level_1_region_code, cases
date, level_1_region, level_1_region_code,
level_2_region, level_2_region_code, cases
)
partial_data <- expected_data[-c(6:9), ]
expect_equal(
fill_empty_dates_with_na(partial_data),
dplyr::arrange(expected_data, level_1_region, date)
dplyr::arrange(expected_data, level_2_region, date)
)
})

Expand Down

0 comments on commit 412d544

Please sign in to comment.