Skip to content

Commit fe24acf

Browse files
committed
fix the bug @mgyliu caught
1 parent a7b67bf commit fe24acf

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

R/epi_keys.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ epi_keys.recipe <- function(x) {
2929
epi_keys_mold <- function(mold) {
3030
keys <- c("time_value", "geo_value", "key")
3131
molded_names <- names(mold$extras$roles)
32-
mold_keys <- map_chr(mold$extras$roles[molded_names %in% keys], names)
33-
unname(mold_keys)
32+
mold_keys <- map(mold$extras$roles[molded_names %in% keys], names)
33+
unname(unlist(mold_keys))
3434
}
3535

tests/testthat/test-epi_keys.R

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,21 @@ test_that("epi_keys_mold extracts time_value and geo_value, but not raw",{
3030
expect_equal(epi_keys_mold(my_workflow$pre$mold),
3131
c("time_value","geo_value"))
3232
})
33+
34+
test_that("epi_keys_mold extracts additional keys when they are present", {
35+
my_data <- case_death_rate_subset %>%
36+
sample_n(6) %>%
37+
tsibble::as_tsibble() %>% # add 2 extra keys
38+
mutate(state = rep("MA", 6), pol = rep("blue", 6)) %>%
39+
as_epi_df(additional_metadata = list(other_keys=c("state", "pol"))) # <-- metadata constructed here
40+
41+
my_recipe <- epi_recipe(my_data) %>%
42+
step_epi_ahead(death_rate , ahead = 7) %>%
43+
step_epi_naomit()
44+
45+
my_workflow <- epi_workflow(my_recipe, linear_reg()) %>% fit(my_data)
46+
47+
expect_equal(
48+
epi_keys_mold(my_workflow$pre$mold),
49+
c("time_value", "geo_value", "state", "pol"))
50+
})

0 commit comments

Comments
 (0)