set_doc_options: Set R Markdown options for 'Evaluator' and 'Visualizer'...

View source: R/experiment-helpers.R

set_doc_optionsR Documentation

Set R Markdown options for Evaluator and Visualizer outputs in summary report.

Description

Set R Markdown options for Evaluator or Visualizer outputs in the summary report. Some options include the height/width of plots and number of digits to show in tables.

Usage

set_doc_options(
  experiment,
  field_name = c("evaluator", "visualizer"),
  name,
  show = NULL,
  nrows,
  ...
)

Arguments

experiment

An Experiment object.

field_name

One of "evaluator" or "visualizer".

name

Name of Evaluator or Visualizer to set R Markdown options.

show

If TRUE, show output; if FALSE, hide output in R Markdown report. Default NULL does not change the "doc_show" field in Evaluator/Visualizer.

nrows

Maximum number of rows to show in the Evaluator's results table in the R Markdown report. If NULL, shows all rows. Default does not change the "doc_nrows" field in the Evaluator. Argument is ignored if field_name = "visualizer".

...

Named R Markdown options to set. If field_name = "visualizer", options are "height" and "width". If field_name = "evaluator", see options for vthemes::pretty_DT().

Value

The original Experiment object with the doc_options and/or show fields modified in the Evaluator/Visualizer.

Examples

## create toy DGPs, Methods, Evaluators, and Visualizers

# generate data from normal distribution with n samples
normal_dgp <- create_dgp(
  .dgp_fun = function(n) rnorm(n), .name = "Normal DGP", n = 100
)
# generate data from binomial distribution with n samples
bernoulli_dgp <- create_dgp(
  .dgp_fun = function(n) rbinom(n, 1, 0.5), .name = "Bernoulli DGP", n = 100
)

# compute mean of data
mean_method <- create_method(
  .method_fun = function(x) list(mean = mean(x)), .name = "Mean(x)"
)

# evaluate SD of mean(x) across simulation replicates
sd_mean_eval <- create_evaluator(
  .eval_fun = function(fit_results, vary_params = NULL) {
    group_vars <- c(".dgp_name", ".method_name", vary_params)
    fit_results %>%
      dplyr::group_by(dplyr::across(tidyselect::all_of(group_vars))) %>%
      dplyr::summarise(sd = sd(mean), .groups = "keep")
  },
  .name = "SD of Mean(x)"
)
# plot SD of mean(x) across simulation replicates
sd_mean_plot <- create_visualizer(
  .viz_fun = function(fit_results, eval_results, vary_params = NULL,
                      eval_name = "SD of Mean(x)") {
    if (!is.null(vary_params)) {
      add_aes <- ggplot2::aes(
        x = .data[[unique(vary_params)]], y = sd, color = .dgp_name
      )
    } else {
      add_aes <- ggplot2::aes(x = .dgp_name, y = sd)
    }
    plt <- ggplot2::ggplot(eval_results[[eval_name]]) +
      add_aes +
      ggplot2::geom_point()
    if (!is.null(vary_params)) {
      plt <- plt + ggplot2::geom_line()
    }
    return(plt)
  },
  .name = "SD of Mean(x) Plot"
)

# initialize experiment with toy DGPs, Methods, Evaluators, and Visualizers
# using piping %>% and add_* functions
experiment <- create_experiment(name = "Experiment Name") %>%
  add_dgp(normal_dgp) %>%
  add_dgp(bernoulli_dgp) %>%
  add_method(mean_method) %>%
  add_evaluator(sd_mean_eval) %>%
  add_visualizer(sd_mean_plot)

# set R Markdown options for Evaluator/Visualizer (in this case, Visualizer)
experiment <- experiment %>%
  set_doc_options(
    field_name = "visualizer", name = "SD of Mean(x) Plot",
    height = 10, width = 8
  )


Yu-Group/simChef documentation built on March 25, 2024, 3:22 a.m.