This is a convenience function for small-scale automatic reporting based on
an R script and a template. The default template is an Rnw file (LaTeX);
stitch_rhtml()
and stitch_rmd()
are wrappers on top of
stitch()
using the R HTML and R Markdown templates respectively.
stitch(
script,
template = system.file("misc", "knitr-template.Rnw", package = "knitr"),
output = NULL,
text = NULL,
envir = parent.frame()
)
stitch_rhtml(..., envir = parent.frame())
stitch_rmd(..., envir = parent.frame())
Path to the R script.
Path of the template to use. By default, the Rnw template in this package; there is also an HTML template in knitr.
Output filename, passed to knit
). By default,
the base filename of the script is used.
A character vector. This is an alternative way to provide the input file.
Environment in which code chunks are to be evaluated, for
example, parent.frame()
, new.env()
, or
globalenv()
).
Arguments passed to stitch()
.
path of the output document
The first two lines of the R script can contain the title and author of the report in comments of the form ## title: and ## author:. The template must have a token %sCHUNK_LABEL_HERE, which will be used to input all the R code from the script. See the examples below.
The R script may contain chunk headers of the form ## ---- label, opt1=val1, opt2=val2, which will be copied to the template; if no chunk headers are found, the whole R script will be inserted into the template as one code chunk.
spin
(turn a specially formatted R script to a report)
s = system.file("misc", "stitch-test.R", package = "knitr")
if (interactive()) stitch(s) # compile to PDF
# HTML report
stitch(s, system.file("misc", "knitr-template.Rhtml", package = "knitr"))
#>
#>
#> processing file: stitch-test.Rhtml
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> 1/7 [setup]
#>
#> | options(width=90)
#> | if (!exists('.knitr.title')) .knitr.title = 'A Report Generated by knitr'
#> | .knitr.author = if (exists('.knitr.author')) paste('by', .knitr.author) else ''
#> 2/7
#>
#> | I(.knitr.title) #128:158
#> | packageVersion('knitr') #326:364
#> | I(.knitr.author) #371:402
#> 3/7 [auto-report]
#>
#> | set.seed(1121)
#> | (x = rnorm(20))
#> | mean(x);var(x)
#> | boxplot(x)
#> | hist(x, main = '')
#> |
#> 4/7
#>
#> 5/7 [session-info]
#>
#> | sessionInfo()
#> | Sys.time()
#> 6/7 [clean-up]
#>
#> | rm(.knitr.author); rm(.knitr.author)
#> 7/7
#>
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Chunk clean-up:
#> Warning in rm(.knitr.author): object '.knitr.author' not found
#>
#> rm(.knitr.author); rm(.knitr.author)
#>
#> Number of messages:
#> warning
#> 1
#> output file: stitch-test.html
#> [1] "stitch-test.html"
# or convert markdown to HTML
stitch(s, system.file("misc", "knitr-template.Rmd", package = "knitr"))
#>
#>
#> processing file: stitch-test.Rmd
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> Warning: 'xfun::attr()' is deprecated.
#> Use 'xfun::attr2()' instead.
#> See help("Deprecated")
#> 1/5
#>
#> | if (exists('.knitr.title')) I(paste('#', .knitr.title, sep = '')) #1:69
#> | if (exists('.knitr.author')) I(.knitr.author) #72:120
#> | packageVersion('knitr') #201:227
#> 2/5 [auto-report]
#>
#> | set.seed(1121)
#> | (x = rnorm(20))
#> | mean(x);var(x)
#> | boxplot(x)
#> | hist(x, main = '')
#> |
#> 3/5
#>
#> 4/5 [session-info]
#>
#> | sessionInfo()
#> | Sys.time()
#> 5/5 [clean-up]
#>
#> | if (exists('.knitr.title')) rm(.knitr.author)
#> | if (exists('.knitr.author')) rm(.knitr.author)
#> output file: stitch-test.md
#> HTML output at: stitch-test.html
#> [1] "stitch-test.md"
unlink(c("stitch-test.html", "stitch-test.md", "figure"), recursive = TRUE)