This function takes a specially formatted R script and converts it to a
literate programming document. By default normal text (documentation) should
be written after the roxygen comment (#') and code chunk options are
written after #| or #+ or # %% or # ----.
Usage
spin(
hair,
knit = TRUE,
report = TRUE,
text = NULL,
envir = parent.frame(),
format = c("Rmd", "Rnw", "Rhtml", "Rtex", "Rrst", "qmd"),
doc = "^#+'[ ]?",
inline = "^[{][{](.+)[}][}][ ]*$",
comment = c("^[# ]*/[*]", "^.*[*]/ *$"),
precious = !knit && is.null(text)
)Arguments
- hair
Path to the R script. The script must be encoded in UTF-8 if it contains multibyte characters.
- knit
Logical; whether to compile the document after conversion.
- report
Logical; whether to generate a report for
Rmd,RnwandRtexoutput. Ignored ifknit = FALSE.- text
A character vector of code, as an alternative way to provide the R source. If
textis notNULL,hairwill be ignored.- envir
Environment for
knit()to evaluate the code.- format
Character; the output format. The default is R Markdown.
- doc
A regular expression to identify the documentation lines; by default it follows the roxygen convention, but it can be customized, e.g. if you want to use
##to denote documentation, you can use'^##\\s*'.- inline
A regular expression to identify inline R expressions; by default, code of the form
{{code}}on its own line is treated as an inline expression.- comment
A pair of regular expressions for the start and end delimiters of comments; the lines between a start and an end delimiter will be ignored. By default, the delimiters are
/*at the beginning of a line, and*/at the end, following the convention of C comments.- precious
logical: whether intermediate files (e.g.,
.Rmdfiles whenformatis"Rmd") should be preserved. The default isFALSEifknitisTRUEand the input is a file.
Details
Obviously the goat's hair is the original R script, and the wool is the literate programming document (ready to be knitted).
Note
If the output format is Rnw and no document class is specified
in roxygen comments, this function will automatically add the
article class to the LaTeX document so that it is complete and can
be compiled. You can always specify the document class and other LaTeX
settings in roxygen comments manually.
When the output format is Rmd, it is compiled to HTML via
knit2html(), which uses R Markdown v1 instead of v2. If you
want to use the latter, you should call
rmarkdown::render() instead. Similarly, if the
output format is qmd, you need to render the output with Quarto.
See also
stitch (feed a template with an R script)