An R Package for Making a Project Computationally Reproducible Before Sharing it
Author: Jae Yeon Kim
File an issue if you have problems, questions or suggestions.
## Install the current development version from GitHub devtools::install_github("jaeyk/makereproducible", dependencies = TRUE) library(makereproducible)
make_here
Creating self-contained projects is great to increase research reproducibility and make your life easier. To make a project self-contained, one of the things you need to do is STOP using setwd()
and START using alternatives like here()
. The problem is people, including, and especially me, are lazy. We know the best practice, but we don’t follow it.
The make_here()
function nudges you to make your project self-contained before sharing it with other people. It does this by saving typing time to turn the relative or absolute path in your R code into the arguments in the here()
function.
To learn how to use it, see the examples below.
read_csv("/home/jae/validating-two-linked-fates/raw_data/sub-data.txt")
read_csv(make_here("/home/jae/validating-two-linked-fates/raw_data/sub-data.txt"))
Only two conditions are needed to make the make_here()
function work.
foo
) and divided different types of files into different subdirectories (data
, R
, etc.).here
package:
.git
.).here
in the main project directory (minimal effort).here::dr_here()
helps to check whether these two conditions were met. If setup correclty, you should be able to see something like the following: here() starts at [your main project directory], because it [satisfies one of the conditions listed above].