1- # ' Core operation of `epix_epi_slide_opt ` for a single epikey's history
1+ # ' Core operation of `epi_slide_opt.epi_archive ` for a single epikey's history
22# '
33# ' @param updates tibble with two columns: `version` and `subtbl`; `subtbl` is a
44# ' list of tibbles, each with a `time_value` column and measurement columns.
4141# ' tidyr::nest(.by = version, .key = "subtbl")
4242# '
4343# ' updates %>%
44- # ' epix_epi_slide_opt_one_epikey ("value", data.table::frollmean, "data.table", 1L, 0L, "day", "slide_value")
44+ # ' epi_slide_opt_one_epikey ("value", data.table::frollmean, "data.table", 1L, 0L, "day", "slide_value")
4545# '
4646# ' @keywords internal
47- epix_epi_slide_opt_one_epikey <- function (updates , in_colnames , f_dots_baked , f_from_package , before , after , time_type , out_colnames ) {
47+ epi_slide_opt_archive_one_epikey <- function (updates , in_colnames , f_dots_baked , f_from_package , before , after , time_type , out_colnames ) {
4848 # TODO check for col name clobbering
4949 unit_step <- epiprocess ::: unit_time_delta(time_type )
5050 prev_inp_snapshot <- NULL
@@ -124,21 +124,9 @@ epix_epi_slide_opt_one_epikey <- function(updates, in_colnames, f_dots_baked, f_
124124 result
125125}
126126
127- # TODO just make this an epi_slide_opt impl?
128-
127+ # ' @method epi_slide_opt grouped_epi_archive
129128# ' @export
130- epix_epi_slide_opt <-
131- function (.x , .col_names , .f , ... ,
132- .window_size = NULL , .align = c(" right" , " center" , " left" ),
133- .prefix = NULL , .suffix = NULL , .new_col_names = NULL # ,
134- # # .ref_time_values = NULL, .all_rows = FALSE
135- ) {
136- UseMethod(" epix_epi_slide_opt" )
137- }
138-
139- # ' @method epix_epi_slide_opt grouped_epi_archive
140- # ' @export
141- epix_epi_slide_opt.grouped_epi_archive <- function (.x , ... ) {
129+ epi_slide_opt.grouped_epi_archive <- function (.x , ... ) {
142130 assert_set_equal(
143131 group_vars(.x ),
144132 key_colnames(.x , exclude = c(" time_value" , " version" ))
@@ -147,16 +135,17 @@ epix_epi_slide_opt.grouped_epi_archive <- function(.x, ...) {
147135 orig_drop <- .x $ private $ drop
148136 .x %> %
149137 ungroup() %> %
150- epix_epi_slide_opt (... ) %> %
138+ epi_slide_opt (... ) %> %
151139 group_by(pick(all_of(orig_group_vars )), .drop = orig_drop )
152140}
153- # ' @method epix_epi_slide_opt epi_archive
141+
142+ # ' @method epi_slide_opt epi_archive
154143# ' @export
155- epix_epi_slide_opt .epi_archive <-
144+ epi_slide_opt .epi_archive <-
156145 function (.x , .col_names , .f , ... ,
157146 .window_size = NULL , .align = c(" right" , " center" , " left" ),
158147 .prefix = NULL , .suffix = NULL , .new_col_names = NULL ,
159- # # , .ref_time_values = NULL, .all_rows = FALSE
148+ .ref_time_values = NULL , .all_rows = FALSE ,
160149 .progress = FALSE ) {
161150 # Extract metadata:
162151 time_type <- .x $ time_type
@@ -175,6 +164,12 @@ epix_epi_slide_opt.epi_archive <-
175164 col_names_quo <- enquo(.col_names )
176165 names_info <- across_ish_names_info(.x $ DT , time_type , col_names_quo , .f_info $ namer , .window_size , .align , .prefix , .suffix , .new_col_names )
177166 window_args <- get_before_after_from_window(.window_size , .align , time_type )
167+ if (! is.null(.ref_time_values )) {
168+ cli_abort(" epi_slide.epi_archive does not support the `.ref_time_values` argument" )
169+ }
170+ if (! identical(.all_rows , FALSE )) {
171+ cli_abort(" epi_slide.epi_archive does not support the `.all_rows` argument" )
172+ }
178173 assert(
179174 checkmate :: check_logical(.progress , any.missing = FALSE , len = 1L , names = " unnamed" ),
180175 checkmate :: check_string(.progress )
@@ -196,7 +191,7 @@ epix_epi_slide_opt.epi_archive <-
196191 nest(.by = version , .key = " subtbl" ) %> %
197192 arrange(version )
198193 # TODO move nesting inside the helper?
199- res <- epix_epi_slide_opt_one_epikey (group_updates , names_info $ input_col_names , .f_dots_baked , .f_info $ from_package , window_args $ before , window_args $ after , time_type , names_info $ output_col_names ) %> %
194+ res <- epi_slide_opt_archive_one_epikey (group_updates , names_info $ input_col_names , .f_dots_baked , .f_info $ from_package , window_args $ before , window_args $ after , time_type , names_info $ output_col_names ) %> %
200195 list_rbind()
201196 if (use_progress ) cli :: cli_progress_update(id = progress_bar_id )
202197 res
0 commit comments