group_map(), group_walk and group_map_dfr are purrr-style functions that can be used to iterate on grouped survey objects (note that group_map_dfr replaces dplyr::group_modify because we are changing the data from a tbl_svy to a regular tibble).

group_map_dfr(.data, .f, ..., .keep = FALSE)

# S3 method for tbl_svy
group_map(.data, .f, ..., .keep = FALSE)

group_map_dfr(.data, .f, ..., .keep = FALSE)



A tbl_svy object


A function or purrr-style formula to apply to each group


Other arguments passed to .f


Whether the grouping variables are kept when passed into .f


For group_map a list, for group_map_dfr a `tbl_df`, and for group_walk invisibly the original tbl_svy.


data(api, package = "survey") dstrata <- apistrat %>% as_survey_design(strata = stype, weights = pw) results <- dstrata %>% group_by(both) %>% group_map(~survey::svyglm(api00~api99 + stype, .)) # group_map_dfr calls `bind_rows` on the list returned and includes # grouping variables. This is most useful with a package like `broom` # but could also be used with survey package functions. result_coef <- dstrata %>% group_by(both) %>% group_map_dfr( ~data.frame( api99_coef = coef(survey::svyglm(api00~api99 + stype, .))[["api99"]] ) )