• Stars
    star
    2,347
  • Rank 19,192 (Top 0.4 %)
  • Language
    R
  • Created almost 13 years ago
  • Updated 3 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,481
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

yihui.org

Personal website and discussion board of Yihui Xie | 谢益辉
HTML
209
star
10

animation

A gallery of animations in statistics and utilities to create animations
R
208
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
185
star
13

litedown

A lightweight version of R Markdown
R
131
star
14

xfun

Miscellaneous R functions
R
125
star
15

printr

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

recharts

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

bookdown-chinese

bookdown 中文书籍范例
TeX
101
star
18

hugo-prose

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

rmini

A minimal R package with examples of most common components
R
90
star
20

hugo-xmag

A minimal magazine theme for Hugo
HTML
85
star
21

runr

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

crandalf

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

twitter-blogdown

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

bookdown-crc

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

yihui.github.io

Old GitHub homepage of Yihui Xie
HTML
62
star
26

bookdown-minimal

An absolutely minimal bookdown example
58
star
27

shiny-apps

Some of my Shiny apps for fun
JavaScript
54
star
28

testit

A simple package for testing R packages
R
52
star
29

rlp

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

latex-pass

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

zdict.js

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

fun

Use R for Fun
R
47
star
33

highr

Syntax Highlighting for R Source Code
R
44
star
34

MSG

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

cn

Chinese blog of Yihui Xie
34
star
36

Rd2roxygen

Convert Rd to roxygen documentation
R
32
star
37

mime

Map filenames to MIME types
R
30
star
38

lyx-R

support for R in LyX (Sweave and knitr, ...)
R
28
star
39

xran

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

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
41

travis-bin

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

rnotebook

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

hugo-paged

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

en

English blog of Yihui Xie
16
star
45

travis-blogdown

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

knitr-talks

talks on the knitr package
R
15
star
47

r-shippable

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

blogdown-hexo

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

configuration

My configuration files
Emacs Lisp
10
star
50

blogdown-yihui-template

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

travis-exitwp

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

thesis

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

blogdown-static

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

misc.js

Miscellaneous tools and utilities in JavaScript
JavaScript
7
star
55

sunbjt.github.com

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

ideas

personal activities
6
star
57

r-docker

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

r-devel

Compile the development version of R
Shell
5
star
59

tmate-r

Debug R problems on GHA via tmate
5
star
60

great-waterfall

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

appstat

Apps for teaching statistics
R
5
star
62

arith.js

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

homebrew-tinytex

The Homebrew formula for TinyTeX
Ruby
4
star
64

stat579

Stat 579 homework solutions
R
3
star
65

iBUGS

An Interface to R2WinBUGS by gWidgets
R
3
star
66

stat-sci-cranvas

The reactive programming paper for Statistical Science
TeX
3
star
67

dokuwiki

my DokuWiki plugins
PHP
2
star
68

raggle

A Shiny application for data mining competition
R
2
star
69

bibr

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

animation.yihui.name

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