Skip to content

Commit beb434c

Browse files
committed
Tweak&fix epi_slide docs regarding packing, nesting
1 parent 05a0ca8 commit beb434c

File tree

2 files changed

+86
-30
lines changed

2 files changed

+86
-30
lines changed

R/slide.R

+44-17
Original file line numberDiff line numberDiff line change
@@ -70,52 +70,81 @@
7070
#' @export
7171
#' @seealso [`epi_slide_opt`] for optimized slide functions
7272
#' @examples
73+
#' library(dplyr)
74+
#'
7375
#' # Get the 7-day trailing standard deviation of cases and the 7-day trailing mean of cases
7476
#' cases_deaths_subset %>%
7577
#' epi_slide(
7678
#' cases_7sd = sd(cases, na.rm = TRUE),
7779
#' cases_7dav = mean(cases, na.rm = TRUE),
7880
#' .window_size = 7
7981
#' ) %>%
80-
#' dplyr::select(geo_value, time_value, cases, cases_7sd, cases_7dav)
82+
#' select(geo_value, time_value, cases, cases_7sd, cases_7dav)
83+
#' # Note that epi_slide_mean could be used to more quickly calculate cases_7dav.
84+
#'
85+
#' # In addition to the [`dplyr::mutate`]-like syntax, you can feed in a function or
86+
#' # formula in a way similar to [`dplyr::group_modify`]:
87+
#' my_summarizer <- function(window_data) {
88+
#' window_data %>%
89+
#' summarize(
90+
#' cases_7sd = sd(cases, na.rm = TRUE),
91+
#' cases_7dav = mean(cases, na.rm = TRUE)
92+
#' )
93+
#' }
94+
#' cases_deaths_subset %>%
95+
#' epi_slide(
96+
#' ~ my_summarizer(.x),
97+
#' .window_size = 7
98+
#' ) %>%
99+
#' select(geo_value, time_value, cases, cases_7sd, cases_7dav)
100+
#'
101+
#'
81102
#'
82-
#' # The same as above, but unpacking using an unnamed data.frame with a formula
103+
#'
104+
#'
105+
#' #### Advanced: ####
106+
#'
107+
#' # The tidyverse supports ["packing"][tidyr::pack] multiple columns into a
108+
#' # single tibble-type column contained within some larger tibble. Like dplyr,
109+
#' # we normally don't pack output columns together, but will if you provide a
110+
#' # name for a tibble-type output:
83111
#' cases_deaths_subset %>%
84112
#' epi_slide(
85-
#' ~ data.frame(
113+
#' slide_packed = tibble(
86114
#' cases_7sd = sd(.x$cases, na.rm = TRUE),
87115
#' cases_7dav = mean(.x$cases, na.rm = TRUE)
88116
#' ),
89117
#' .window_size = 7
90118
#' ) %>%
91-
#' dplyr::select(geo_value, time_value, cases, cases_7sd, cases_7dav)
92-
#'
93-
#' # The same as above, but packing using a named data.frame with a tidy evaluation
94-
#' # expression
119+
#' select(geo_value, time_value, cases, slide_packed)
95120
#' cases_deaths_subset %>%
96121
#' epi_slide(
97-
#' slide_packed = data.frame(
122+
#' ~ tibble(
98123
#' cases_7sd = sd(.x$cases, na.rm = TRUE),
99124
#' cases_7dav = mean(.x$cases, na.rm = TRUE)
100125
#' ),
126+
#' .new_col_name = "slide_packed",
101127
#' .window_size = 7
102128
#' ) %>%
103-
#' dplyr::select(geo_value, time_value, cases, slide_packed)
129+
#' select(geo_value, time_value, cases, slide_packed)
104130
#'
105-
#' # nested new columns
131+
#' # You can also get ["nested"][tidyr::nest] format by wrapping your results in
132+
#' # a list:
106133
#' cases_deaths_subset %>%
107134
#' group_by(geo_value) %>%
108135
#' epi_slide(
109136
#' function(x, g, t) {
110-
#' data.frame(
137+
#' list(tibble(
111138
#' cases_7sd = sd(x$cases, na.rm = TRUE),
112139
#' cases_7dav = mean(x$cases, na.rm = TRUE)
113-
#' )
140+
#' ))
114141
#' },
115142
#' .window_size = 7
116143
#' ) %>%
117144
#' ungroup() %>%
118-
#' dplyr::select(geo_value, time_value, cases, cases_7sd, cases_7dav)
145+
#' select(geo_value, time_value, slide_value)
146+
#'
147+
#'
119148
#'
120149
#' # Use the geo_value or the ref_time_value in the slide computation
121150
#' cases_deaths_subset %>%
@@ -943,10 +972,8 @@ epi_slide_opt <- function(
943972
#' # output column names:
944973
#' covid_case_death_rates_extended %>%
945974
#' group_by(geo_value) %>%
946-
#' epi_slide_mean(c(case_rate, death_rate),
947-
#' .window_size = 7,
948-
#' .new_col_names = c("smoothed_case_rate", "smoothed_death_rate")
949-
#' ) %>%
975+
#' epi_slide_mean(c(case_rate, death_rate), .window_size = 7,
976+
#' .new_col_names = c("smoothed_case_rate", "smoothed_death_rate")) %>%
950977
#' ungroup()
951978
#' covid_case_death_rates_extended %>%
952979
#' group_by(geo_value) %>%

man/epi_slide.Rd

+42-13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)