Title | A General-Purpose Package for Dynamic Report Generation in R |
Version | 1.50.4 |
Description | Provides a general-purpose tool for dynamic report generation in R using Literate Programming techniques. |
Depends | R (>= 3.6.0) |
Imports | evaluate (>= 0.15), highr (>= 0.11), methods, tools, xfun (>= 0.52), yaml (>= 2.1.19) |
Suggests | bslib, codetools, DBI (>= 0.4-1), digest, formatR, gifski, gridSVG, htmlwidgets (>= 0.7), jpeg, JuliaCall (>= 0.11.1), magick, litedown, markdown (>= 1.3), png, ragg, reticulate (>= 1.4), rgl (>= 0.95.1201), rlang, rmarkdown, sass, showtext, styler (>= 1.2.0), targets (>= 0.6.0), testit, tibble, tikzDevice (>= 0.10), tinytex (>= 0.56), webshot, rstudioapi, svglite |
License | GPL |
URL | https://yihui.org/knitr/ |
BugReports | https://github.com/yihui/knitr/issues |
VignetteBuilder | litedown, knitr |
Author | Yihui Xie |
The R package knitr is a general-purpose literate programming engine, with lightweight API’s designed to give users full control of the output without heavy coding work. It combines many features into one package with slight tweaks motivated from my everyday use of Sweave. See the package homepage for details and examples. See FAQ’s for a list of frequently asked questions (including where to ask questions).
You can install the stable version on CRAN:
install.packages('knitr')
You can also install the development version (hourly build) from https://yihui.r-universe.dev:
options(repos = c(
yihui = 'https://yihui.r-universe.dev',
CRAN = 'https://cloud.r-project.org'
))
install.packages('knitr')
While Sweave and related add-on packages like cacheSweave and pgfSweave are fairly good engines for literate programming in R, I often feel my hands are tied. For example:
[width=.8\textwidth]
between
\includegraphics
and {my-plot.pdf}
. (The official way in Sweave is
\setkeys{Gin}
but it is setting a global width, which is unrealistic
since we often have to set widths individually; yes, you can use
\setkeys{Gin}
for many times, but why not just provide an option for
each chunk?)dev = 'png'
or dev = 'CairoJPEG'
.\Sexpr{}
other than
writing expressions like \Sexpr{round(x, 3)}
for each single \Sexpr{}
print()
plots from.
ggplot2 and a simple
qplot(x, y)
would just give me a plot in Sweave.Sweave.sty
or run into
troubles due to the fact that LaTeX cannot find Sweave.sty
.The package knitr was designed to give the user access to every part of the process of dealing with a literate programming document, so there is no need to hack at any core components if you want more freedom. I have gone through the source code of pgfSweave and cacheSweave for a couple of times and I often feel uncomfortable with the large amount of code copied from official R, especially when R has a new version released (I will begin to worry if the add-on packages are still up-to-date with the official Sweave).
library(knitr)
?knit
knit(input)
If options are not explicitly specified, knitr will try to guess reasonable default settings. A few manuals are available such as the main manual, and the graphics manual. For a more organized reference, see the knitr book.
This package is free and open source software, licensed under GPL.
To cite the package knitr in publications, please use:
Xie Y (2025). knitr: A General-Purpose Package for Dynamic Report Generation in R. R package version 1.50.4, https://yihui.org/knitr/.
@Manual{,
title = {knitr: A General-Purpose Package for Dynamic Report Generation in {R}},
author = {Yihui Xie},
year = {2025},
note = {R package version 1.50.4},
url = {https://yihui.org/knitr/},
}
Xie Y (2015). Dynamic Documents with R and knitr, 2nd edition. Chapman and Hall/CRC, Boca Raton, Florida. ISBN 978-1498716963, https://yihui.org/knitr/.
@Book{,
title = {Dynamic Documents with {R} and knitr},
author = {Yihui Xie},
publisher = {Chapman and Hall/CRC},
address = {Boca Raton, Florida},
year = {2015},
edition = {2nd},
note = {ISBN 978-1498716963},
url = {https://yihui.org/knitr/},
}
Xie Y (2014). “knitr: A Comprehensive Tool for Reproducible Research in R.” In Stodden V, Leisch F, Peng RD (eds.), Implementing Reproducible Computational Research. Chapman and Hall/CRC. ISBN 978-1466561595.
@InCollection{,
booktitle = {Implementing Reproducible Computational Research},
editor = {Victoria Stodden and Friedrich Leisch and Roger D. Peng},
title = {knitr: A Comprehensive Tool for Reproducible Research in {R}},
author = {Yihui Xie},
publisher = {Chapman and Hall/CRC},
year = {2014},
note = {ISBN 978-1466561595},
}