knitr
Sign in to saveknitr is a software engine for dynamic report generation with R. It is a package in the programming language R that enables integration of R code into LaTeX, LyX, HTML, Markdown, AsciiDoc, and reStructuredText documents. The purpose of knitr is to allow reproducible research in R through the means of literate programming. It is licensed under the GNU General Public License.
Source code
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). 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: I stared at the source code of Sweave and wished for hundreds of times, if only I could easily insert [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?) I wished for many times, if only I could use graphics devices other than PDF and postscript ; now the dream has come true in the official R, but what I was hoping for was an option as simple as dev = 'png' or dev = 'CairoJPEG' . I wished multiple plots in a code chunk could be recorded instead of only the last one. I wished there was a way to round the numbers in Sexpr{} other than writing expressions like Sexpr{round(x, 3)} for each single Sexpr{} I wished I did not have to print() plots from. ggplot2 and a simple qplot(x, y) would just give me a plot in Sweave. I wished users would never need instructions on Sweave.sty or run into troubles due to the fact that LaTeX cannot find Sweave.sty . I wished cacheSweave could print the results of a code chunk even if it was cached. I wished brew could support graphics. I wished R2HTML could support R code syntax highlighting. ... 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). 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.
Excerpt from the source-code README · 4,503 chars · not written by Vinony
Wikidata facts
- Official website
- yihui.name/knitr
- Image
- Screenshot-knitr-RStudio.png
Show 3 more facts
- software version identifier
- 1.51
- source code repository URL
- github.com/yihui/knitr
- Commons category
- Knitr
Sources (4)
via Wikidata · CC0
~3 min read
Article
4 sectionsContents
- Workflow of knitr
- See also
- References
- External links
knitr is a software engine for dynamic report generation with R. It is a package in the programming language R that enables integration of R code into LaTeX, LyX, HTML, Markdown, AsciiDoc, and reStructuredText documents. The purpose of knitr is to allow reproducible research in R through the means of literate programming. It is licensed under the GNU General Public License.
knitr was inspired by Sweave and written with a different design for better modularization, so it is easier to maintain and extend. Sweave can be regarded as a subset of knitr in the sense that all features of Sweave are also available in knitr. Some of knitr's extensions include the R Markdown format (used in reports published on RPubs), caching, TikZ graphics and support to other languages such as Python, Perl, C++, Shell scripts and CoffeeScript, and so on.