sketchy

lifecycle

The package is intended to facilitate the use of research compendiums for data analysis in the R environment. Standard research compendiums provide a easily recognizable means for organizing digital materials, allowing other researchers to inspect, reproduce, and build upon that research.

Unlike other R packages for creating research compendiums (e.g. vertical, rrtools), sketchy isn’t wedded to a particular folder structure. Currently the package provides 13 alternative structures (see object compendiums) and allows users to modify or input their own structures.

To install the latest developmental version from github you will need the R package devtools:

# From github
devtools::install_github("maRce10/sketchy")

# load package
library(sketchy)

Default compendium skeletons

Compendiums can be set up with the function make_compendium(). The function creates the folder/subfolder structure and prints a diagram of the skeleton in the console:

Basic compendium

path = tempdir()

make_compendium(name = "proyect_x", path = path, format = compendiums$basic$skeleton)
## Creating directories ...
## proyect_x
## │   
## ├── data/  
## │   ├── processed/  
## │   └── raw/  
## ├── manuscript/  
## ├── output/  
## └── scripts/  
## Done.

 

(in these examples the compendiums are created in a temporary directory, change ‘path’ to create it in a different directory)

Alternative structures

We can use folder structures from other sources. For instance, in this example we use the structured suggested by Wilson et al. (2017):

make_compendium(name = "proyect_y", path = path, format = compendiums$wilson$skeleton)
## Creating directories ...
## proyect_y
## │   
## ├── data/  
## ├── doc/  
## ├── requirements/  
## ├── results/  
## └── src/  
## Done.

 

We can also add comments to the folders to explain what kind of files they are supposed to contain:

make_compendium(name = "proyect_z", path = path, format = compendiums$large_compendium$skeleton,
    comments = compendiums$large_compendium$comments)
## Creating directories ...
## proyect_z
## │   
## ├── analysis/  # Data, scripts, RMarkdown reports and Makefile
## │   ├── data/  # Raw data in open formats, not changed once created
## │   └── scripts/  # R code used to analyse and visualise data
## ├── man/  # Custom R functions used repeatedly throughout the project
## ├── R/  # Auto-generated documentation for the custom R functions
## └── tests/  # Unit tests of R functions to ensure they perform as expected
## Done.

 

When creating a compendium that includes a “manuscript” folder the package adds a “manuscript_template.Rmd” file for facilitating paper writing within the compendium itself.

We can check all compendium structure available as follows:

for (i in 1:length(compendiums)) {
    print("---------------", quote = FALSE)
    print(names(compendiums)[i], quote = FALSE)
    print_skeleton(folders = compendiums[[i]]$skeleton)
}
## [1] ---------------
## [1] basic
## .
## │   
## ├── data/  
## │   ├── processed/  
## │   └── raw/  
## ├── manuscript/  
## ├── output/  
## └── scripts/  
## [1] ---------------
## [1] figures
## .
## │   
## ├── data/  
## │   ├── processed/  
## │   └── raw/  
## ├── manuscript/  
## ├── output/  
## │   └── figures/  
## │       ├── exploratory/  
## │       └── final/  
## └── scripts/  
## [1] ---------------
## [1] project_template
## .
## │   
## ├── cache/  
## ├── config/  
## ├── data/  
## ├── diagnostics/  
## ├── docs/  
## ├── graphs/  
## ├── lib/  
## ├── logs/  
## ├── munge/  
## ├── profiling/  
## ├── reports/  
## ├── src/  
## └── tests/  
## [1] ---------------
## [1] pakillo
## .
## │   
## ├── analyses/  
## ├── data/  
## ├── data-raw/  
## ├── docs/  
## ├── inst/  
## ├── man/  
## ├── manuscript/  
## ├── R/  
## └── tests/  
## [1] ---------------
## [1] boettiger
## .
## │   
## ├── man/  
## ├── R/  
## ├── tests/  
## └── vignettes/  
## [1] ---------------
## [1] wilson
## .
## │   
## ├── data/  
## ├── doc/  
## ├── requirements/  
## ├── results/  
## └── src/  
## [1] ---------------
## [1] small_compendium
## .
## │   
## ├── analysis/  
## └── data/  
## [1] ---------------
## [1] medium_compendium
## .
## │   
## ├── analysis/  
## ├── data/  
## ├── man/  
## └── R/  
## [1] ---------------
## [1] large_compendium
## .
## │   
## ├── analysis/  
## │   ├── data/  
## │   └── scripts/  
## ├── man/  
## ├── R/  
## └── tests/  
## [1] ---------------
## [1] vertical
## .
## │   
## ├── data/  
## ├── data-raw/  
## ├── docs/  
## ├── experiments/  
## ├── man/  
## ├── manuscripts/  
## ├── model/  
## ├── posters/  
## ├── R/  
## ├── slides/  
## └── vignettes/  
## [1] ---------------
## [1] rrtools
## .
## │   
## ├── analysis/  
## ├── data/  
## ├── figures/  
## ├── paper/  
## └── templates/  
## [1] ---------------
## [1] rdir
## .
## │   
## ├── code/  
## │   ├── processed/  
## │   ├── raw/  
## │   ├── clean/  
## │   └── raw/  
## ├── figures/  
## │   ├── exploratory/  
## │   └── final/  
## └── text/  
##     ├── final/  
##     └── notes/  
## [1] ---------------
## [1] workflowr
## .
## │   
## ├── analysis/  
## ├── code/  
## ├── data/  
## ├── docs/  
## └── output/

Please cite sketchy as follows:

Araya-Salas, M., Willink, B., Arriaga, A. (2020), sketchy: research compendiums for data analysis in R. R package version 1.0.0.

References

  1. Alston, J., & Rick, J. (2020). A Beginner’s Guide to Conducting Reproducible Research.

  2. Marwick, B., Boettiger, C., & Mullen, L. (2018). Packaging Data Analytical Work Reproducibly Using R (and Friends). American Statistician, 72(1), 80–88.

  3. Wilson G, Bryan J, Cranston K, Kitzes J, Nederbragt L. & Teal, T. K.. 2017. Good enough practices in scientific computing. PLOS Computational Biology 13(6): e1005510.