@@ -632,22 +632,53 @@ get_before_after_from_window <- function(window_size, align, time_type) {
632632# ' @export
633633# ' @seealso [`epi_slide`] for the more general slide function
634634# ' @examples
635- # ' # Compute a 7-day trailing average on cases.
635+ # ' # Add a column (`cases_7dsum`) containing a 7-day trailing sum on ` cases`:
636636# ' cases_deaths_subset %>%
637+ # ' select(geo_value, time_value, cases) %>%
638+ # ' epi_slide_sum(cases, .window_size = 7)
639+ # '
640+ # ' # Add a column (`cases_rate_7dav`) containing a 7-day trailing average on `case_rate`:
641+ # ' covid_case_death_rates_extended %>%
642+ # ' epi_slide_mean(case_rate, .window_size = 7)
643+ # '
644+ # ' # Use a less common specialized slide function:
645+ # ' cases_deaths_subset %>%
646+ # ' epi_slide_opt(cases, slider::slide_min, .window_size = 7)
647+ # '
648+ # ' # Specify output column names and/or a naming scheme:
649+ # ' cases_deaths_subset %>%
650+ # ' select(geo_value, time_value, cases) %>%
637651# ' group_by(geo_value) %>%
638- # ' epi_slide_opt (cases, .f = data.table::frollmean , .window_size = 7 ) %>%
652+ # ' epi_slide_sum (cases, .window_size = 7 , .new_col_names = "case_sum" ) %>%
639653# ' ungroup()
640- # '
641- # ' # Same as above, but adjust `frollmean` settings for speed, accuracy, and
642- # ' # to allow partially-missing windows.
643654# ' cases_deaths_subset %>%
655+ # ' select(geo_value, time_value, cases) %>%
644656# ' group_by(geo_value) %>%
645- # ' epi_slide_opt(
646- # ' cases,
647- # ' .f = data.table::frollmean, .window_size = 7,
648- # ' algo = "exact", hasNA = TRUE, na.rm = TRUE
649- # ' ) %>%
657+ # ' epi_slide_sum(cases, .window_size = 7, .prefix = "sum_") %>%
650658# ' ungroup()
659+ # '
660+ # ' # Additional settings can be sent to the {data.table} and {slider} functions
661+ # ' # via `...`. This example passes some arguments to `frollmean` settings for
662+ # ' # speed, accuracy, and to allow partially-missing windows:
663+ # ' covid_case_death_rates_extended %>%
664+ # ' epi_slide_mean(
665+ # ' case_rate,
666+ # ' .window_size = 7,
667+ # ' na.rm = TRUE, algo = "exact", hasNA = TRUE
668+ # ' )
669+ # '
670+ # ' # If the more specialized possibilities for `.f` don't cover your needs, you
671+ # ' # can use `epi_slide_opt` with `.f = data.table::frollapply` to apply a
672+ # ' # custom function at the cost of more computation time. See also `epi_slide`
673+ # ' # if you need something even more general.
674+ # ' cases_deaths_subset %>%
675+ # ' select(geo_value, time_value, case_rate_7d_av, death_rate_7d_av) %>%
676+ # ' epi_slide_opt(c(case_rate_7d_av, death_rate_7d_av),
677+ # ' data.table::frollapply,
678+ # ' FUN = median, .window_size = 28,
679+ # ' .suffix = "_{.n}{.time_unit_abbr}_median"
680+ # ' ) %>%
681+ # ' print(n = 40)
651682epi_slide_opt <- function (
652683 .x , .col_names , .f , ... ,
653684 .window_size = NULL , .align = c(" right" , " center" , " left" ),
@@ -951,40 +982,6 @@ epi_slide_opt <- function(
951982# ' datatable::frollmean`.
952983# '
953984# ' @export
954- # ' @examples
955- # ' # Compute a 7-day trailing average of case rates.
956- # ' covid_case_death_rates_extended %>%
957- # ' group_by(geo_value) %>%
958- # ' epi_slide_mean(case_rate, .window_size = 7) %>%
959- # ' ungroup()
960- # '
961- # ' # Same as above, but adjust `frollmean` settings for speed, accuracy, and
962- # ' # to allow partially-missing windows.
963- # ' covid_case_death_rates_extended %>%
964- # ' group_by(geo_value) %>%
965- # ' epi_slide_mean(
966- # ' case_rate,
967- # ' .window_size = 7,
968- # ' na.rm = TRUE, algo = "exact", hasNA = TRUE
969- # ' ) %>%
970- # ' ungroup()
971- # '
972- # ' # Compute a 7-day trailing average of case rates and death rates, with custom
973- # ' # output column names:
974- # ' covid_case_death_rates_extended %>%
975- # ' group_by(geo_value) %>%
976- # ' epi_slide_mean(c(case_rate, death_rate),
977- # ' .window_size = 7,
978- # ' .new_col_names = c("smoothed_case_rate", "smoothed_death_rate")
979- # ' ) %>%
980- # ' ungroup()
981- # ' covid_case_death_rates_extended %>%
982- # ' group_by(geo_value) %>%
983- # ' epi_slide_mean(c(case_rate, death_rate),
984- # ' .window_size = 7,
985- # ' .suffix = "_{.n}{.time_unit_abbr}_avg"
986- # ' ) %>%
987- # ' ungroup()
988985epi_slide_mean <- function (
989986 .x , .col_names , ... ,
990987 .window_size = NULL , .align = c(" right" , " center" , " left" ),
@@ -1044,25 +1041,6 @@ epi_slide_mean <- function(
10441041# ' datatable::frollsum`.
10451042# '
10461043# ' @export
1047- # ' @examples
1048- # ' # Compute a 7-day trailing sum on cases.
1049- # ' cases_deaths_subset %>%
1050- # ' select(geo_value, time_value, cases) %>%
1051- # ' group_by(geo_value) %>%
1052- # ' epi_slide_sum(cases, .window_size = 7) %>%
1053- # ' ungroup()
1054- # '
1055- # ' # Specify output column names and/or naming scheme:
1056- # ' cases_deaths_subset %>%
1057- # ' select(geo_value, time_value, cases) %>%
1058- # ' group_by(geo_value) %>%
1059- # ' epi_slide_sum(cases, .window_size = 7, .new_col_names = "case_sum") %>%
1060- # ' ungroup()
1061- # ' cases_deaths_subset %>%
1062- # ' select(geo_value, time_value, cases) %>%
1063- # ' group_by(geo_value) %>%
1064- # ' epi_slide_sum(cases, .window_size = 7, .prefix = "sum_") %>%
1065- # ' ungroup()
10661044epi_slide_sum <- function (
10671045 .x , .col_names , ... ,
10681046 .window_size = NULL , .align = c(" right" , " center" , " left" ),
0 commit comments