Learn R Programming

sketchy: create custom research compendiums

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 14 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 remotes:


# From github
remotes::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()

# load data
data(compendiums)

make_compendium(name = "proyect_x", path = path, format = "basic")
## Creating directories ...
## proyect_x
## │   
## ├── data/  
## │   ├── processed/  # modified/rearranged data
## │   └── raw/  # original data
## ├── manuscript/  # manuscript/poster figures
## ├── output/  # all non-data products of data analysis
## └── scripts/  # code
## 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_z", path = path, format = "large_compendium")
## 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/  # Auto-generated documentation for the custom R functions
## ├── R/  # Custom R functions used repeatedly throughout the project
## └── 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/  
## ├── data/  
## │   ├── clean/  
## │   └── raw/  
## ├── figures/  
## │   ├── exploratory/  
## │   └── final/  
## └── text/  
##     ├── final/  
##     └── notes/  
## [1] ---------------
## [1] workflowr
## .
## │   
## ├── analysis/  
## ├── code/  
## ├── data/  
## ├── docs/  
## └── output/  
## [1] ---------------
## [1] sketchy
## .
## │   
## ├── data/  
## │   ├── processed/  
## │   └── raw/  
## ├── manuscript/  
## ├── output/  
## └── scripts/

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.

Copy Link

Version

Install

install.packages('sketchy')

Monthly Downloads

238

Version

1.0.5

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Marcelo Araya-Salas

Last Published

January 16th, 2025

Functions in sketchy (1.0.5)

make_compendium

Generate folder structures for research compendiums
check_urls

Check urls in dynamic report files
open_wd

Open working directory
compendiums

List with compendium skeletons
print_skeleton

Print folder structures
add_to_gitignore

Add entries to gitignore
load_packages

Install and load packages
spot_unused_files

Spot/remove unused files
sketchy-package

sketchy: create custom research compendiums