targets入門
- 科学的な分析結果は、他の人(未来の自分を含む)にも再現できるものでなければ信頼できなません。
-
targets
は、ワークフローを自動化することで再現性の達成を支援します。
-
targets
はRプログラミング言語で使います。
- このワークショップのデータセットには、南極のペンギンの測定値が含まれています。
- Projects help keep our analyses organized so we can easily re-run
them later
- Use the RStudio Project Wizard to create projects
- The
_targets.R
file is a special file that must be
included in all targets
projects, and defines the
worklow
- Use
tar_script()
to create a default
_targets.R
file
- Use
tar_make()
to run the workflow
-
targets
workflows are run in a separate,
non-interactive R session
-
tar_load()
loads a workflow object into the current R
session
-
tar_read()
reads a workflow object and returns its
value
- The
_targets
folder is the cache and generally should
not be edited by hand
-
targets
only runs the steps that have been affected by
a change to the code
-
tar_visnetwork()
shows the current state of the
workflow as a network
-
tar_progress()
shows the current state of the workflow
as a data frame
-
tar_outdated()
lists outdated targets
-
tar_invalidate()
can be used to invalidate (re-run)
specific targets
- Put code in the
R/
folder
- Put functions in
R/functions.R
- Specify packages in
R/packages.R
- Put other miscellaneous files in
_targets/user
- Writing functions is a key skill for
targets
pipelines
- There are multiple ways to load packages with
targets
-
targets
only tracks user-defined functions, not
packages
- Use
renv
to manage package versions
- Use the
conflicted
package to manage namespace
conflicts
-
tarchetypes::tar_file()
tracks the contents of a
file
- Use
tarchetypes::tar_file_read()
in combination with
data loading functions like read_csv()
to keep the pipeline
in sync with your input data
- Use
tarchetypes::tar_file()
in combination with a
function that writes to a file and returns its path to write out
data
- Dynamic branching creates multiple targets with a single
command
- You usually need to write custom functions so that the output of the
branches includes necessary metadata
- Dynamic branching creates multiple targets with a single
command
- You usually need to write custom functions so that the output of the
branches includes necessary metadata
- Parallel computing works at the level of the workflow, not the
function
-
tarchetypes::tar_quarto()
is used to render Quarto
documents
- You should load targets within the Quarto document using
tar_load()
and tar_read()
- It is recommended to do heavy computations in the main targets
workflow, and lighter formatting and plot generation in the Quarto
document