reproducible documents/analytics in R: the knitr package

June 26, 2012
By

(This article was first published on geo-affine » R, and kindly contributed to R-bloggers)

When I am working in new institutions and I am asking: “Do you have a document management system?” I often get the answer:”Yap, we are using folders” … OKAY. Making analysis, developing applications and keeping an eye on code, data and applications make this even harder as it has to be.
Of course not many institutions are using R and Latex but there is a nice little package called knitr which tries to make this a little bit easier. It combines your analysis and documentation in one single document aka PDF.
I would like to show you a little example:

install.packages("knitr")
library("knitr")

this will install knitr in R. So lets go straight ahead with an easy example. What you will write is a so called *.Rnw file. This will have the same structure as a tex-file but it will contain R code as well. But prior document creation keep an eye on your settings: In Rstudio you will find an easy dialogue which will control the knitr behaviour:

Rstudio preferences for knitr/Sweave

Rstudio preferences for knitr/Sweave (click to enlarge)


And if you use something like a default working directory check your default working directory in Rstudio as well as it differs from the one you had set using setwd(“path”):
default path setting in Rstudio

default path setting in Rstudio (click to enlarge)


So lets come to the *.Rnw file:

\documentclass{article}
\begin{document}
\title{minimal knitr example in R}
\author{R. Klinger}
\maketitle
this is our workflow:
<<>>=
set.seed(99)
x = 1 + rnorm(200,3,2)
mean(x);var(x)
@
the first two elements of x are \Sexpr{x[1:2]}

<<echo=FALSE>>=
plot(x, main="daily returns of asset X", ylab="returns", xlab="days")
abline(lm(x ~ seq(1,200,1)))
@
\end{document}

Between the “<<>>=” and the “@” you can put your R code. referencing in line using data from R works in our example with \Sexpr{x[1:2]} which will type the first two elements of x in your document directly into one line. If you don’t want code to appear on your PDF you can adjust the “echo” option.
So how to get a document out of it? Store the above code as an *.Rnw file in your working directory, load it into RStudio and press “Compile PDF” or just watch this video:

Isn’t this a cool way to document your work???

To leave a comment for the author, please follow the link and comment on his blog: geo-affine » R.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Tags: , , , , , , , , , ,

Comments are closed.