2014-12-22
Lately, I've been using Rmarkdown + Make to perform statistical analysis and generate reports.
I saw Shaun Jackman's slideshow "Open, reproducible science using Make, RMarkdown and Pandoc" and thought it was lacking a key example: how do you use Make to generate reports from RMarkdown files? So I put together a little recipe for doing just that. It is a basic project directory structure and a tiny Makefile that automatically renders Rmarkdown files to HTML.
In the example repo, there is a Makefile
which defines a couple of rules for
converting .md
files into .pdf
and .html
files:
%.html: %.Rmd
@Rscript -e "rmarkdown::render('$<')"
%.pdf: %.Rmd
@Rscript -e "rmarkdown::render('$<')"
After adding this to your Makefile
you can type make my-analysis.pdf
to
render my-analysis.md
.
To automatically convert all .md
files to .pdf
, add the following lines
which will create a target .pdf
file for all of the .Rmd
files in the
current working directory:
# define targets
SOURCES=$(shell find notebooks -name *.Rmd)
TARGETS=$(SOURCES:%.Rmd=%.pdf)
default: $(TARGETS)
# type `make clean` to delete all of the target PDFs
clean:
rm -rf $(TARGETS)