It allows to automatically generate the code necessary to group multiple Rmarkdown chunks into tabs. Concatenating all the chunks into a string that can be later knitted and rendered.

automagic_tabs(
  input_data,
  panel_name,
  .output,
  ...,
  tabset_title = "",
  tabset_props = ".tabset-fade .tabset-pills",
  is_output_distill = TRUE
)

Arguments

input_data

Ungrouped tibble with at least 2 columns, one for the title of the tabs and another with the output to be displayed.

panel_name

string with the name of the ID column.

.output

string with the name of the column of the output.

...

additional parameters that correspond to all those available in rmarkdown chunks (fig.align, fig.width, ...).

tabset_title

string title of the .tabset

tabset_props

string defining .tabset properties. Only works with is_output_distill = F

is_output_distill

boolean. is output a distill article.

Value

concatenated string of all automatically generated chunks.

Details

given a tibble, which must contain an "ID" column (representing the title of the tabs) and another column that stores the output to be generated (plot, text, code, ...), a string is automatically generated which can be later rendered in a Rmarkdown document.

See also

Examples

#> #> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’: #> #> filter, lag
#> The following objects are masked from ‘package:base’: #> #> intersect, setdiff, setequal, union
library(sknifedatar) library(ggplot2) dataset <- iris %>% group_by(Species) %>% tidyr::nest() %>% mutate( .plot = purrr::map(data, ~ ggplot(.x, aes(x = Sepal.Length, y = Petal.Length)) + geom_point()) ) %>% ungroup() automagic_tabs(input_data = dataset, panel_name = "Species", .output = ".plot", fig.align='center')
#> | | | 0% | |.......... | 14% #> ordinary text without R code #> #> | |.................... | 29% #> label: `r automagic_chunk_dataset_setosa` (with options) #> List of 1 #> $ fig.align: chr "center" #> #> | |.............................. | 43% #> ordinary text without R code #> #> | |........................................ | 57% #> label: `r automagic_chunk_dataset_versicolor` (with options) #> List of 1 #> $ fig.align: chr "center" #> #> | |.................................................. | 71% #> ordinary text without R code #> #> | |............................................................ | 86% #> label: `r automagic_chunk_dataset_virginica` (with options) #> List of 1 #> $ fig.align: chr "center" #> #> | |......................................................................| 100% #> ordinary text without R code #> #>
#> [1] "## { .tabset-fade .tabset-pills} \n\n::::: {.panelset}\n\n::: {.panel}\n\n### setosa \n\n\n```r\n dataset$.plot[[1]] \n```\n\n```\n## Error in eval(expr, envir, enclos): object 'dataset' not found\n```\n\n:::\n::: {.panel}\n\n### versicolor \n\n\n```r\n dataset$.plot[[2]] \n```\n\n```\n## Error in eval(expr, envir, enclos): object 'dataset' not found\n```\n\n:::\n::: {.panel}\n\n### virginica \n\n\n```r\n dataset$.plot[[3]] \n```\n\n```\n## Error in eval(expr, envir, enclos): object 'dataset' not found\n```\n\n::: \n\n:::::"
unlink("figure", recursive = TRUE)