There are some tasks I do a lot and it'd be good to have general .Rmd documents available to report on the outcome of those tasks. Some examples would be a standard report on an ML experiment, or an overview from a data curation pipeline. I've been using rmarkdown for generating reports, but it has some limitations for this. I don't want to have a new Rmd file for every report. I'd like to have a configurable template file that lives in a shared location that I can run each time.
Unfortunately, if you try to do this you'll soon find that rmarkdown expects the Rmd file to be in your working directory - well, the working directory is set to the location of the Rmd file. See the following line in render.R
: github-render.R_L96
My current work around for this (and please let me know if you have a better way) is to have a helper script which copies over the Rmd file to the current working directory, generates the report and then removes the temporary files:
The Rmd file has a line for loading in the configuration:
library(yaml)
config <- yaml.load_file("model_report.yaml")
The YAML configuration file contains the project specific variables (e.g. output suffix, flags for adding/subtracting items from a report, important dir locations). This file could easily be generated on the fly via arguments to the bash script.