• Stars
    star
    2,327
  • Rank 18,823 (Top 0.4 %)
  • Language
    R
  • Created over 12 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A general-purpose tool for dynamic report generation in R

knitr

R-CMD-check Check knitr examples Codecov test coverage CRAN release

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).

Installation

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')

Motivation

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 book Dynamic Documents with R and knitr

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).

Usage

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.

License

This package is free and open source software, licensed under GPL.

More Repositories

1

xaringan

Presentation Ninja 幻灯忍者 · 写轮眼
CSS
1,472
star
2

r-ninja

R语言忍者秘笈
CSS
796
star
3

hugo-xmin

eXtremely Minimal Hugo theme: about 150 lines of code in total, including HTML and CSS (with no dependencies)
HTML
630
star
4

knitr-examples

A collection of knitr examples
TeX
473
star
5

servr

A simple HTTP server in R
R
267
star
6

hugo-ivy

A two-column Hugo theme ported from Ivy
HTML
264
star
7

formatR

Format R Code Automatically
R
238
star
8

knitr-book

Dynamic Documents with R and knitr
TeX
226
star
9

animation

A gallery of animations in statistics and utilities to create animations
R
207
star
10

yihui.org

Personal website and discussion board of Yihui Xie | 谢益辉
HTML
204
star
11

blogdown-jekyll

Automatically knit R Markdown documents, build them with Jekyll, and serve the website with servr locally
SCSS
199
star
12

rolldown

R Markdown output formats for storytelling
HTML
184
star
13

xfun

Miscellaneous R functions
R
125
star
14

printr

Some (magical) printing methods for knitr
R
119
star
15

recharts

An R Interface to Apache ECharts (incubating)
R
117
star
16

bookdown-chinese

bookdown 中文书籍范例
TeX
101
star
17

hugo-prose

A Hugo theme derived from the XMin theme, and inspired by Wowchemy, Distill, and tufte.css
HTML
90
star
18

rmini

A minimal R package with examples of most common components
R
87
star
19

hugo-xmag

A minimal magazine theme for Hugo
HTML
85
star
20

runr

Run external programs from R (experimental)
R
85
star
21

crandalf

Check all reverse dependencies of your R package with Github Actions
R
71
star
22

twitter-blogdown

Fetch Twitter messages weekly and turn them into a website based on blogdown
HTML
67
star
23

bookdown-crc

A minimal example of using bookdown to write a book for Chapman & Hall/CRC
TeX
64
star
24

yihui.github.io

Old GitHub homepage of Yihui Xie
HTML
62
star
25

bookdown-minimal

An absolutely minimal bookdown example
58
star
26

shiny-apps

Some of my Shiny apps for fun
JavaScript
54
star
27

testit

A simple package for testing R packages
R
52
star
28

rlp

An Example of Using Literate Programming for R Package Development
R
52
star
29

latex-pass

Help you pass the LaTeX compilation by telling you which LaTeX packages are missing to compile your documents
R
48
star
30

zdict.js

汉典网站数据(汉字、拼音、释义等)
JavaScript
47
star
31

fun

Use R for Fun
R
46
star
32

highr

Syntax Highlighting for R Source Code
R
45
star
33

MSG

Modern Statistical Graphics (《现代统计图形》的附加包)
R
36
star
34

cn

Chinese blog of Yihui Xie
34
star
35

mime

Map filenames to MIME types
R
30
star
36

Rd2roxygen

Convert Rd to roxygen documentation
R
30
star
37

lyx-R

support for R in LyX (Sweave and knitr, ...)
R
26
star
38

xran

Xie's R Archive Network (experimental and for my personal interest only)
HTML
24
star
39

homebrew-cran-extra

A "CRAN extras" repository of some binary R packages for the Homebrew (cask) version of base R on macOS
R
22
star
40

rnotebook

R Notebook based on JSON and R Markdown (experimental)
R
18
star
41

travis-bin

Some binaries built for Ubuntu 18.04 (Pandoc and TeXLive)
Python
18
star
42

hugo-paged

A Hugo theme with the feel of printed media (inspired by paged.js)
HTML
17
star
43

en

English blog of Yihui Xie
16
star
44

travis-blogdown

A minimal example of building and deploying a blogdown-based website via Travis CI
16
star
45

knitr-talks

talks on the knitr package
R
15
star
46

r-shippable

Pre-install some packages for my R package CI+CD on Shippable.com
Shell
13
star
47

configuration

My configuration files
Emacs Lisp
10
star
48

blogdown-hexo

A sample website based on blogdown and Hexo
CSS
10
star
49

blogdown-yihui-template

A skeleton of my previous personal website based on blogdown and Hugo. I no longer use it.
HTML
10
star
50

travis-exitwp

Upload your WordPress XML to this repo, and download Markdown posts in a minute
Shell
9
star
51

thesis

A repo as an early attempt of my PhD thesis and discarded later. For my actual thesis, see
Shell
9
star
52

blogdown-static

A minimal example of building Rmd files under the static/ directory of a website based on blogdown and Hugo
HTML
8
star
53

misc.js

Miscellaneous tools and utilities in JavaScript
JavaScript
7
star
54

sunbjt.github.com

刘思喆的个人网站
JavaScript
6
star
55

ideas

personal activities
6
star
56

r-docker

A docker image for my own package development
Shell
6
star
57

r-devel

Compile the development version of R
Shell
5
star
58

tmate-r

Debug R problems on GHA via tmate
5
star
59

great-waterfall

水遁:大瀑布之术(说得这么玄乎,其实就一 Jekyll/CSS 主题额已)
CSS
5
star
60

appstat

Apps for teaching statistics
R
5
star
61

arith.js

简单的四则运算练习程序
JavaScript
5
star
62

homebrew-tinytex

The Homebrew formula for TinyTeX
Ruby
4
star
63

stat579

Stat 579 homework solutions
R
3
star
64

iBUGS

An Interface to R2WinBUGS by gWidgets
R
3
star
65

stat-sci-cranvas

The reactive programming paper for Statistical Science
TeX
3
star
66

dokuwiki

my DokuWiki plugins
PHP
2
star
67

raggle

A Shiny application for data mining competition
R
2
star
68

bibr

All your base, oh no, R citation, are belong to us
1
star
69

animation.yihui.name

a meta website for the animation package (i.e. redirecting to the real site)
HTML
1
star