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
2
2
# '
3
3
# ' @param updates tibble with two columns: `version` and `subtbl`; `subtbl` is a
4
4
# ' list of tibbles, each with a `time_value` column and measurement columns.
41
41
# ' tidyr::nest(.by = version, .key = "subtbl")
42
42
# '
43
43
# ' 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")
45
45
# '
46
46
# ' @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 ) {
48
48
# TODO check for col name clobbering
49
49
unit_step <- epiprocess ::: unit_time_delta(time_type )
50
50
prev_inp_snapshot <- NULL
@@ -124,21 +124,9 @@ epix_epi_slide_opt_one_epikey <- function(updates, in_colnames, f_dots_baked, f_
124
124
result
125
125
}
126
126
127
- # TODO just make this an epi_slide_opt impl?
128
-
127
+ # ' @method epi_slide_opt grouped_epi_archive
129
128
# ' @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 , ... ) {
142
130
assert_set_equal(
143
131
group_vars(.x ),
144
132
key_colnames(.x , exclude = c(" time_value" , " version" ))
@@ -147,16 +135,17 @@ epix_epi_slide_opt.grouped_epi_archive <- function(.x, ...) {
147
135
orig_drop <- .x $ private $ drop
148
136
.x %> %
149
137
ungroup() %> %
150
- epix_epi_slide_opt (... ) %> %
138
+ epi_slide_opt (... ) %> %
151
139
group_by(pick(all_of(orig_group_vars )), .drop = orig_drop )
152
140
}
153
- # ' @method epix_epi_slide_opt epi_archive
141
+
142
+ # ' @method epi_slide_opt epi_archive
154
143
# ' @export
155
- epix_epi_slide_opt .epi_archive <-
144
+ epi_slide_opt .epi_archive <-
156
145
function (.x , .col_names , .f , ... ,
157
146
.window_size = NULL , .align = c(" right" , " center" , " left" ),
158
147
.prefix = NULL , .suffix = NULL , .new_col_names = NULL ,
159
- # # , .ref_time_values = NULL, .all_rows = FALSE
148
+ .ref_time_values = NULL , .all_rows = FALSE ,
160
149
.progress = FALSE ) {
161
150
# Extract metadata:
162
151
time_type <- .x $ time_type
@@ -175,6 +164,12 @@ epix_epi_slide_opt.epi_archive <-
175
164
col_names_quo <- enquo(.col_names )
176
165
names_info <- across_ish_names_info(.x $ DT , time_type , col_names_quo , .f_info $ namer , .window_size , .align , .prefix , .suffix , .new_col_names )
177
166
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
+ }
178
173
assert(
179
174
checkmate :: check_logical(.progress , any.missing = FALSE , len = 1L , names = " unnamed" ),
180
175
checkmate :: check_string(.progress )
@@ -196,7 +191,7 @@ epix_epi_slide_opt.epi_archive <-
196
191
nest(.by = version , .key = " subtbl" ) %> %
197
192
arrange(version )
198
193
# 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 ) %> %
200
195
list_rbind()
201
196
if (use_progress ) cli :: cli_progress_update(id = progress_bar_id )
202
197
res
0 commit comments