I spend a lot of my time and energy encouraging researchers and data science folks to think about the reproducibility and citability of their work. My work at University of Oxford includes managing the Interactive Data Network and I’m one of the founders of OxShef: dataviz. In both these projects we talk about the “RDM trinity” which recommends researchers do the following to guarantee a fully reproducible workflow:
- Obtain an ORCID and affiliate it with your institution
- Deposit data in a DOI issuing data repository
- Publish research with DOI issuing publishers
- Deposit associated code and visualisations at DOI issuing repositories
It’s a lot of faff doing all of this, especially when researchers are supposed to be doing important things like responding to Ebola outbreaks1. So I make sure to follow all these steps myself whenever I output things, which means I should do my best to make my blogposts reproducible as well. I reached out on Twitter for advice from folks on reproducible workflows for blogdown blogs:
#rstats bloggers, I've a question!
— Charlie Joey Hadley (@charliejhadley) January 3, 2018
if you use GitHub pages for your blog & plan for each post / #dataviz to be a reproducible self-contained .RProj do you have a separate repo for each post? Feels like overkill :/
There were a number of really good ideas that I think should be easy to implement. I particularly like the idea of using Github Gists, as it solves the following problem:
- A dataset exists on a website behind authentication that’s not made available by an API.. for instance:
- Kaggle datasets!
I want folks to be able to easily run code from a blogpost without having to manually download and move files - because that’s horrible! So, where suitable, I plan to do the following:
- Create a gist to accompany a blogpost
- Host difficult to programmatically access datafiles in the Gist
- Pull data from the Gist in the blogpost
- If the blogpost has outputs that take longer than ~2mins to compute then also push these to the Gist
- Cite the Gist at the top of the blogpost!
- Add a README.md to the Gist linking back to the blogpost.
This come very low on the reproducibility scale, though. There’s no DOI and the availability of Gists are at the whim of the corporate interests of GitHub. But where I clearly don’t own the dataset and have done very little to augment it, it doesn’t feel appropriate to deposit data in my name elsewhere.
However, I think there are good cases where it is appropriate to re-deposit a dataset at a DOI-issuing repository because it’s been augmented or prepared for R significantly. Provided that the original dataset is properly cited and the authors contacted (and cited) if possible. As I explore these ideas more I’m planning on updating this post with examples of where I’ve followed this practice or seen others do the same. I’d also be interested in hearing the thoughts of others in the comments below.
Footnotes
I do quite a bit of work with the awesome Dr. Philippa Matthews
orcid.org/0000-0002-4036-4269 who’s also a reproducibility nut.↩︎