The package yamlme
targets to produce R-markdown
documents from plain R code. The tasks of this package are the automatic
generation of reports from R sessions as well as producing templates that can
be shared as functions or rmd_doc
objects.
To install this package from its GitHub repository, you can use
the package devtools
.
library(devtools) install_github("kamapu/yamlme", build_vignettes = TRUE)
Load the package after you start a new session.
library(yamlme)
This package uses functions of
yaml
for reading and writing
yaml-headers.
In yamlme
, R-markdown documents can be created from lists, for instance:
my_document <- list(title = "My first document") as(my_document, "rmd_doc")
Some applications may also require a description (or abstract) as in the case of
documents rendered by distill
.
To add a description you need to collapse lines into a single string
(character value) including line breaks.
The description will start with a vertical line in the yaml header.
my_document <- list(description = paste0(c( "This text starts with a vertical line", "and will be thus used as a description", "in the head." ), collapse = "\n")) as(my_document, "rmd_doc")
You can use character vectors to produce sequences in the yaml header, as sometimes required for PDF documents.
my_document <- list("header-includes" = c( "\\usepackage{titling}", "\\pretitle{\\begin{flushleft}\\LARGE\\textbf}", "\\posttitle{\\end{flushleft}}", "\\sffamily" )) as(my_document, "rmd_doc")
List embedded into lists can be conveniently used to produce more complex maps for yaml headers in Rmarkdown documents.
my_document <- list(output = list(pdf_document = "default")) as(my_document, "rmd_doc")
The following is a more complex map using embedded lists.
my_document <- list( author = list( list( name = "Miguel Alvarez", url = "https://kamapu.github.io/" ), list( name = "Bisrat H. Gebrekhidan" ) ) ) as(my_document, "rmd_doc")
To know the representation of a specific yaml map in Rmarkdown documents, you
can read Rmd files using the function read_rmd()
. Also consider a visit
to the R yaml homepage here.
Here there is an example of a full Rmarkdown document.
my_document <- list( title = "Mi First Document", author = "My Name", output = "html_document", body = txt_body( "# Starting a working day", "", "At the beginning of every day I will do:", "", "- Say everyone \"Good morning!\"", "- Start the coffe mashine", "- Start the computer", "- Read mails" ) ) my_document <- as(my_document, "rmd_doc")
In this case we can render the document directly from the resulting object.
render_rmd(input = my_document) browseURL("my_document.html")
The function update()
can be used to modify settings and content in documents
written by write_rmd()
.
my_template <- list( title = "Example HTML document", author = "My Self", output = "html_document", body = txt_body( "# Introduction", "", "This is just an example." ) ) my_template <- as(my_template, "rmd_doc") my_template
We can also modify the template to adapt the output or the template of the document.
my_template <- update(my_template, title = "Example PDF document", output = "pdf_document" ) my_template
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.