diff --git a/R/get_chunk_template_defaults.R b/R/get_chunk_template_defaults.R index 5c84455..39c2894 100644 --- a/R/get_chunk_template_defaults.R +++ b/R/get_chunk_template_defaults.R @@ -1,10 +1,15 @@ #' Get Global Options for Chunk Templates #' +#' @param variant Positive integer. #' @return List with options in R #' @export #' #' @examples get_chunk_template_defaults() -get_chunk_template_defaults <- function() { - .saros.env$default_chunk_templates +get_chunk_template_defaults <- function(variant=1) { + template_name <- paste0("default_chunk_templates_", variant) + if(!template_name %in% names(.saros.env)) { + cli::cli_abort("{.arg variant}={.val {variant}} is invalid.") + } + .saros.env[[template_name]] } diff --git a/R/zzz.R b/R/zzz.R index 76c4f20..b40482c 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -31,7 +31,7 @@ if(!exists(".saros.env")) .saros.env <- NULL - .saros.env$default_chunk_templates <<- + .saros.env$default_chunk_templates_1 <<- data.frame(.template_name = character(), .template = character(), .template_variable_type_dep = character(), @@ -46,7 +46,7 @@ if(!exists(".saros.env")) .saros.env <- NULL {.obj_name} <- \n\tmakeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\tindep = c({.variable_name_indep}), \n\ttype='cat_prop_plot_html') nrange <- n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\tindep = c({.variable_name_indep})) link <- make_link(data = {.obj_name}$data) -link_plot <- make_link(data = {.obj_name}, file_suffix='.png', link_prefix='[Download PNG](', save_fn = ggsaver, width=12, height=12, units='cm') +link_plot <- make_link(data = {.obj_name}, file_suffix='.png', link_prefix='[download PNG](', save_fn = ggsaver, width=12, height=12, units='cm') girafe(ggobj = {.obj_name}) ``` @@ -67,7 +67,7 @@ _{.variable_label_prefix_dep}_ by _{tolower(.variable_label_prefix_indep)}_. N=` {.obj_name} <- \n\tmakeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype = 'cat_prop_plot_html') nrange <- n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\tindep = c({.variable_name_indep})) link <- make_link(data={.obj_name}$data) -link_plot <- make_link(data = {.obj_name}, file_suffix='.png', link_prefix='[Download PNG](', save_fn = ggsaver, width=12, height=12, units='cm') +link_plot <- make_link(data = {.obj_name}, file_suffix='.png', link_prefix='[download PNG](', save_fn = ggsaver, width=12, height=12, units='cm') girafe(ggobj = {.obj_name}) ``` @@ -152,7 +152,7 @@ _Significance tests_. ```{{r}} #| fig-height: !expr saros.contents::fig_height_h_barchart(n_y={.n_dep}, n_cats_y={.n_cats_dep}, max_chars_y={.max_chars_dep}, n_x={.n_indep}, n_cats_x={.n_cats_indep}, max_chars_x={.max_chars_indep}) -{.obj_name} <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\tindep = c({.variable_name_indep}), \n\ttype='cat_prop_plot_html', \n\tcrowd=c('target', 'others')) +{.obj_name} <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\tindep = c({.variable_name_indep}), \n\ttype='cat_prop_plot_html', \n\tcrowd=c('target', 'others'), \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) captions <- purrr::map2_chr(seq_along({.obj_name}), .fn = { \t nrange <- saros.contents::n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\tindep = c({.variable_name_indep})) \t link <- saros.contents::make_link(data = .x$data) @@ -176,7 +176,7 @@ _{.variable_label_prefix_dep}_ by _{tolower(.variable_label_prefix_indep)}_. `{{ ```{{r}} #| fig-height: !expr fig_height_h_barchart(n_y={.n_dep}, n_cats_y={.n_cats_dep}, max_chars_y={.max_chars_dep}) -{.obj_name} <- \n\tmakeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype = 'cat_prop_plot_html', \n\tcrowd=c('target', 'others')) +{.obj_name} <- \n\tmakeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype = 'cat_prop_plot_html', \n\tcrowd=c('target', 'others'), \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) captions <- purrr::map2_chr(seq_along({.obj_name}), .fn = { \t nrange <- saros.contents::n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep})) \t link <- saros.contents::make_link(data = .x$data) @@ -199,7 +199,7 @@ _{.variable_label_prefix_dep}_. `{{r}} captions`. ::: {{#tbl-{.chunk_name} }} ```{{r}} -{.obj_name} <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype = 'cat_prop_table_html', \n\tcrowd=c('target', 'others')) +{.obj_name} <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype = 'cat_prop_table_html', \n\tcrowd=c('target', 'others'), \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) captions <- purrr::map2_chr(seq_along({.obj_name}), .fn = { \t nrange <- saros.contents::n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep})) \t link <- saros.contents::make_link(data = .x$data) @@ -224,7 +224,7 @@ _{.variable_label_prefix_dep}_. N=`{{r}} nrange`. `{{r}} link`. ::: {{#tbl-{.chunk_name} }} ```{{r}} -{.obj_name} <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype = 'chr_table_html', \n\tcrowd=c('target')) +{.obj_name} <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype = 'chr_table_html', \n\tcrowd=c('target'), \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) gt::gt({.obj_name}) ``` @@ -237,6 +237,168 @@ _{.variable_label_prefix_dep}_. .template_variable_type_dep = "chr", .template_variable_type_indep = NA_character_) +################################################################################################################################## + # For crowd = c("target", "others") when ggiraph has limitations in loops + .saros.env$default_chunk_templates_3 <<- + data.frame(.template_name = character(), + .template = character(), + .template_variable_type_dep = character(), + .template_variable_type_indep = character()) |> + tibble::add_row(.template_name = "cat_prop_plot_html", + .template = + " +::: {{.panel-tabset}} + +## Target + +::: {{#fig-{.chunk_name}-target }} + +```{{r}} +#| fig-height: !expr saros.contents::fig_height_h_barchart(n_y={.n_dep}, n_cats_y={.n_cats_dep}, max_chars_y={.max_chars_dep}, n_x={.n_indep}, n_cats_x={.n_cats_indep}, max_chars_x={.max_chars_indep}) +x <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\tindep = c({.variable_name_indep}), \n\ttype='cat_prop_plot_html', \n\tcrowd='target', \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) +nrange <- saros.contents::n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\tindep = c({.variable_name_indep})) +link <- saros.contents::make_link(data = {.obj_name}$data) +link_plot <- saros.contents::make_link(data = {.obj_name}, link_prefix='[download PNG](', save_fn = ggsaver) +caption <- I(paste0('N=', nrange, ', ', link, ', ', link_plot)) +ggiraph::girafe(ggobj = x) +``` + +_{.variable_label_prefix_dep}_ by _{tolower(.variable_label_prefix_indep)}_ for _`{{r}} params$mesos_group}}`_. `{{r}} caption`. + +::: + + +## Others + +::: {{#fig-{.chunk_name} }} + +```{{r}} +#| fig-height: !expr saros.contents::fig_height_h_barchart(n_y={.n_dep}, n_cats_y={.n_cats_dep}, max_chars_y={.max_chars_dep}, n_x={.n_indep}, n_cats_x={.n_cats_indep}, max_chars_x={.max_chars_indep}) +x <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\tindep = c({.variable_name_indep}), \n\ttype='cat_prop_plot_html', \n\tcrowd='others', \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) +nrange <- saros.contents::n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\tindep = c({.variable_name_indep})) +link <- saros.contents::make_link(data = {.obj_name}$data) +link_plot <- saros.contents::make_link(data = {.obj_name}, link_prefix='[download PNG](', save_fn = ggsaver) +caption <- I(paste0('N=', nrange, ', ', link, ', ', link_plot)) +ggiraph::girafe(ggobj = x) + +``` + +_{.variable_label_prefix_dep}_ by _{tolower(.variable_label_prefix_indep)}_ for _others_. `{{r}} caption`. + +::: +::: +", + .template_variable_type_dep = "fct;ord", + .template_variable_type_indep = "fct;ord") |> + + tibble::add_row(.template_name = "cat_prop_plot_html", + .template = + " +::: {{.panel-tabset}} + +## Target + +::: {{#fig-{.chunk_name}-target }} + +```{{r}} +#| fig-height: !expr saros.contents::fig_height_h_barchart(n_y={.n_dep}, n_cats_y={.n_cats_dep}, max_chars_y={.max_chars_dep}, n_x={.n_indep}, n_cats_x={.n_cats_indep}, max_chars_x={.max_chars_indep}) +x <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype='cat_prop_plot_html', \n\tcrowd='target', \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) +nrange <- saros.contents::n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep})) +link <- saros.contents::make_link(data = {.obj_name}$data) +link_plot <- saros.contents::make_link(data = {.obj_name}, link_prefix='[download PNG](', save_fn = ggsaver) +caption <- paste0('N=', nrange, ', ', link, ', ', link_plot) +ggiraph::girafe(ggobj = x) +``` + +_{.variable_label_prefix_dep}_ for _`{{r}} params$mesos_group}}`_. `{{r}} caption`. + +::: + + +## Others + +::: {{#fig-{.chunk_name} }} + +```{{r}} +#| fig-height: !expr saros.contents::fig_height_h_barchart(n_y={.n_dep}, n_cats_y={.n_cats_dep}, max_chars_y={.max_chars_dep}, n_x={.n_indep}, n_cats_x={.n_cats_indep}, max_chars_x={.max_chars_indep}) +x <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype='cat_prop_plot_html', \n\tcrowd='others', \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) +nrange <- saros.contents::n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep})) +link <- saros.contents::make_link(data = {.obj_name}$data) +link_plot <- saros.contents::make_link(data = {.obj_name}, link_prefix='[download PNG](', save_fn = ggsaver) +caption <- paste0('N=', nrange, ', ', link, ', ', link_plot) +ggiraph::girafe(ggobj = x) + +``` +_{.variable_label_prefix_dep}_ for _others_. `{{r}} caption`. + +::: +::: +", + .template_variable_type_dep = "fct;ord", + .template_variable_type_indep = NA_character_) |> + + tibble::add_row(.template_name = "cat_table_html", + .template = + " +::: {{.panel-tabset}} + +## Target + +::: {{#fig-{.chunk_name}-target }} + +```{{r}} +#| fig-height: !expr saros.contents::fig_height_h_barchart(n_y={.n_dep}, n_cats_y={.n_cats_dep}, max_chars_y={.max_chars_dep}, n_x={.n_indep}, n_cats_x={.n_cats_indep}, max_chars_x={.max_chars_indep}) +x <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype='cat_table_html', \n\tcrowd='target', \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) +nrange <- saros.contents::n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep})) +caption <- paste0('N=', nrange) +gt::gt(ggobj = x) +``` + +_{.variable_label_prefix_dep}_ for _`{{r}} params$mesos_group}}`_. `{{r}} caption`. + +::: + + +## Others + +::: {{#fig-{.chunk_name} }} + +```{{r}} +#| fig-height: !expr saros.contents::fig_height_h_barchart(n_y={.n_dep}, n_cats_y={.n_cats_dep}, max_chars_y={.max_chars_dep}, n_x={.n_indep}, n_cats_x={.n_cats_indep}, max_chars_x={.max_chars_indep}) +x <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype='cat_table_html', \n\tcrowd='others', \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) +nrange <- saros.contents::n_range(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep})) +caption <- paste0('N=', nrange) +gt::gt(ggobj = x) + +``` + +_{.variable_label_prefix_dep}_ for _others_. `{{r}} caption`. + +::: +::: + +", + .template_variable_type_dep = "fct;ord", + .template_variable_type_indep = NA_character_) |> + + tibble::add_row(.template_name = "chr_table", + .template = + " +::: {{#tbl-{.chunk_name} }} + +```{{r}} +{.obj_name} <- \n\tsaros.contents::makeme(data = data_{.chapter_foldername}, \n\tdep = c({.variable_name_dep}), \n\ttype = 'chr_table_html', \n\tcrowd='target', \n\tmesos_var = 'f_uni', \n\tmesos_group = params$mesos_group) +gt::gt({.obj_name}) +``` + +_{.variable_label_prefix_dep}_. + +::: + + +", + .template_variable_type_dep = "chr", + .template_variable_type_indep = NA_character_) } diff --git a/man/get_chunk_template_defaults.Rd b/man/get_chunk_template_defaults.Rd index 8cbac92..3b5d301 100644 --- a/man/get_chunk_template_defaults.Rd +++ b/man/get_chunk_template_defaults.Rd @@ -4,7 +4,10 @@ \alias{get_chunk_template_defaults} \title{Get Global Options for Chunk Templates} \usage{ -get_chunk_template_defaults() +get_chunk_template_defaults(variant = 1) +} +\arguments{ +\item{variant}{Positive integer.} } \value{ List with options in R