Pipeline tools coordinate the pieces of computationally demanding
analysis projects. The targets
package is a
Make-like pipeline tool for
statistics and data science in R. The package skips costly runtime for
tasks that are already up to date, orchestrates the necessary
computation with implicit parallel computing, and abstracts files as R
objects. If all the current output matches the current upstream code and
data, then the whole pipeline is up to date, and the results are more
trustworthy than otherwise.
A pipeline is a computational workflow that does statistics, analytics,
or data science. Examples include forecasting customer behavior,
simulating a clinical trial, and detecting differential expression from
genomics data. A pipeline contains tasks to prepare datasets, run
models, and summarize results for a business deliverable or research
paper. The methods behind these tasks are user-defined R functions that
live in R scripts, ideally in a folder called "R/"
in the project. The
tasks themselves are called “targets”, and they run the functions and
return R objects. The targets
package orchestrates the targets and
stores the output objects to make your pipeline efficient, painless, and
reproducible.
If you are using targets
with crew
for distributed
computing, it is
recommended to use crew
version 0.4.0
or higher.
install.packages("crew")
There are multiple ways to install the targets
package itself, and
both the latest release and the development version are available.
| Type | Source | Command |
|-------------|----------|-------------------------------------------------------------------|
| Release | CRAN | install.packages("targets")
|
| Development | GitHub | remotes::install_github("ropensci/targets")
|
| Development | rOpenSci | install.packages("targets", repos = "https://dev.ropensci.org")
|
The 4-minute video at https://vimeo.com/700982360 demonstrates the example pipeline used in the walkthrough and functions chapters of the user manual. Visit https://github.com/wlandau/targets-four-minutes for the code and https://rstudio.cloud/project/3946303 to try out the code in a browser (no download or installation required).
To create a pipeline of your own:
"R/"
folder of
your project).use_targets()
to write key files, including the vital _targets.R
file which
configures and defines the pipeline._targets.R
to fill in the details of your
specific pipeline.tar_visnetwork()
,
run it with
tar_make()
,
and read output with
tar_read()
.
More
functions
are available.targets
. The most important chapters are
the
walkthrough,
help guide, and
debugging guide.targets
.Please read the help
guide to learn how best
to ask for help using targets
.
targets
in 4 minutes
(4:08)targets
in Action
with Joel Nitta and Eric
Scott. rOpenSci Community Call (1:09:56).targets
and crew
for clinical trial simulation
pipelines.
R/Pharma 2023 (1:57:22).targets
and stantargets
for Bayesian model validation
pipelines. R/Medicine 2021 (15:33)targets
New York Open Statistical
Programming Meetup, December 2020 (1:54:28).stantargets
to validate a Bayesian
longitudinal model for clinical trial data
analysistar_watch()
:
a built-in Shiny app to visualize progress while a pipeline is
running. Available as a Shiny module via
tar_watch_ui()
and
tar_watch_server()
.targetsketch
: a Shiny
app to help sketch pipelines
(app,
source).tar_github_actions()
sets up a pipeline to run on GitHub Actions. The minimal
example demonstrates this
approach.targets
. These
packages simplify
pipeline construction for specific fields of Statistics and data
science.Please note that this package is released with a Contributor Code of Conduct.
citation("targets")
To cite targets in publications use:
Landau, W. M., (2021). The targets R package: a dynamic Make-like
function-oriented pipeline toolkit for reproducibility and
high-performance computing. Journal of Open Source Software, 6(57),
2959, https://doi.org/10.21105/joss.02959
A BibTeX entry for LaTeX users is
@Article{,
title = {The targets R package: a dynamic Make-like function-oriented pipeline toolkit for reproducibility and high-performance computing},
author = {William Michael Landau},
journal = {Journal of Open Source Software},
year = {2021},
volume = {6},
number = {57},
pages = {2959},
url = {https://doi.org/10.21105/joss.02959},
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.