Learn R Programming

rang (version 0.3.0)

create_turing: Create executable research compendium according to the Turing Way

Description

This usethis-style function creates an executable research compendium according to the Turing Way.

Usage

create_turing(
  path,
  add_rang = TRUE,
  add_makefile = TRUE,
  add_here = TRUE,
  verbose = TRUE,
  force = FALSE,
  apptainer = FALSE
)

Value

path, invisibly

Arguments

path

character, path to the project root

add_rang

logical, whether to run use_rang() to path

add_makefile

logical, whether to insert a barebone Makefile in the project root.

add_here

logical, whether to insert a hidden .here file in the project root

verbose

logical, whether to print out messages

force

logical, whether to overwrite files (inst/rang/update.R, Makefile, .here) if they exist.

apptainer

logical, whether to use apptainer. FALSE indicates using Docker

Details

According to the Turing Way, an executable research compendium should have the following properties

  1. Files should be organized in a conventional folder structure;

  2. Data, methods, and output should be clearly separated;

  3. The computational environment should be specified.

We use the structure suggested by the Turing Way:

  • data_raw: a directory to hold the raw data

  • data_clean: a directory to hold the processed data

  • code: a directory to hold computer code

  • CITATION: a file holding citation information

  • paper.Rmd: a manuscript This function provides the a clearly separated organizational structure. Components can be changed. For example, the manuscript can be in another format (e.g. quarto, sweave) or even optional. With add_rang, the computational environment can be recorded and reconstructed later.

References

The Turing Way: Research Compendia Gorman, KB, Williams TD. and Fraser WR (2014). Ecological Sexual Dimorphism and Environmental Variability within a Community of Antarctic Penguins (Genus Pygoscelis). PLoS ONE 9(3):e90081. tools:::Rd_expr_doi("10.1371/journal.pone.0090081")

See Also

use_rang()