R/subchunkify.R

Defines functions subchunkify

Documented in subchunkify

#' Function to create different heights and widths in RMarkdown Code Chunks which are Created automatically
#' 
#' @description Taken from StackOverflow.
#' 
#' @param g A plot.
#' @param fig.height The Figure height as in an RMarkdown document.
#' @param fig.width The Figure width as in an RMarkdown document.
#' @param dpi Dots per inch for figure.
#' @param echo As in an RMarkdown document.
#' @param message As in an RMarkdown document.
#' @param warning As in an RMarkdown document.
#' 
#' @author Andreas Scharmueller, \email{andschar@@proton.me}
#' 
#' @export
#' 
#' @examples
#' subchunkify(plot(iris, Sepal.Length ~ Sepal.Width))
#' 
subchunkify = function(g,
                       fig.height = 7,
                       fig.width = 5,
                       dpi = 72,
                       echo = FALSE,
                       message = FALSE,
                       warning = FALSE) {
  g_deparsed = paste0(deparse(
    function() {g}
  ), collapse = '')
  
  sub_chunk = paste0("```{r sub_chunk_", floor(runif(1) * 1e5),
                     ", fig.height=", fig.height,
                     ", fig.width=", fig.width,
                     ", dpi=", dpi,
                     ", echo=", echo,
                     ", warning=", warning,
                     ", message=", message,
                     " }",
                     "\n(", 
                     g_deparsed
                     , ")()",
                     "\n```
                     ")
  
  cat(knitr::knit(text = knitr::knit_expand(text = sub_chunk), quiet = TRUE))
}
andschar/andmisc documentation built on Jan. 19, 2025, 10:46 a.m.