tar_map2_count {tarchetypes} | R Documentation |
Dynamic-within-static branching for data frames (count batching).
Description
Define targets for batched dynamic-within-static branching for data frames, where the user sets the (maximum) number of batches.
Usage
tar_map2_count(
name,
command1,
command2,
values = NULL,
names = NULL,
descriptions = tidyselect::everything(),
batches = 1L,
combine = TRUE,
suffix1 = "1",
suffix2 = "2",
columns1 = tidyselect::everything(),
columns2 = tidyselect::everything(),
rep_workers = 1,
tidy_eval = targets::tar_option_get("tidy_eval"),
packages = targets::tar_option_get("packages"),
library = targets::tar_option_get("library"),
format = targets::tar_option_get("format"),
repository = targets::tar_option_get("repository"),
error = targets::tar_option_get("error"),
memory = targets::tar_option_get("memory"),
garbage_collection = targets::tar_option_get("garbage_collection"),
deployment = targets::tar_option_get("deployment"),
priority = targets::tar_option_get("priority"),
resources = targets::tar_option_get("resources"),
storage = targets::tar_option_get("storage"),
retrieval = targets::tar_option_get("retrieval"),
cue = targets::tar_option_get("cue"),
description = targets::tar_option_get("description")
)
Arguments
name |
Symbol, name of the target. A target
name must be a valid name for a symbol in R, and it
must not start with a dot. Subsequent targets
can refer to this name symbolically to induce a dependency relationship:
e.g. |
command1 |
R code to create named arguments to |
command2 |
R code to map over the data frame of arguments
produced by |
values |
Named list or data frame with values to iterate over.
The names are the names of symbols in the commands and pattern
statements, and the elements are values that get substituted
in place of those symbols. |
names |
Language object with a tidyselect expression
to select which columns of |
descriptions |
Names of a column in |
batches |
Number of batches. This is also the number of dynamic
branches created during |
combine |
Logical of length 1, whether to statically combine all the results into a single target downstream. |
suffix1 |
Character of length 1,
suffix to apply to the |
suffix2 |
Character of length 1,
suffix to apply to the |
columns1 |
A tidyselect expression to select which columns of |
columns2 |
A tidyselect expression to select which columns of |
rep_workers |
Positive integer of length 1, number of local R processes to use to run reps within batches in parallel. If 1, then reps are run sequentially within each batch. If greater than 1, then reps within batch are run in parallel using a PSOCK cluster. |
tidy_eval |
Whether to invoke tidy evaluation
(e.g. the |
packages |
Character vector of packages to load right before
the target runs or the output data is reloaded for
downstream targets. Use |
library |
Character vector of library paths to try
when loading |
format |
Optional storage format for the target's return value.
With the exception of |
repository |
Character of length 1, remote repository for target storage. Choices:
Note: if |
error |
Character of length 1, what to do if the target stops and throws an error. Options:
|
memory |
Character of length 1, memory strategy.
If |
garbage_collection |
Logical, whether to run |
deployment |
Character of length 1. If |
priority |
Numeric of length 1 between 0 and 1. Controls which
targets get deployed first when multiple competing targets are ready
simultaneously. Targets with priorities closer to 1 get dispatched earlier
(and polled earlier in |
resources |
Object returned by |
storage |
Character of length 1, only relevant to
|
retrieval |
Character of length 1, only relevant to
|
cue |
An optional object from |
description |
Character of length 1, a custom free-form human-readable
text description of the target. Descriptions appear as target labels
in functions like |
Details
Static branching creates one pair of targets
for each row in values
. In each pair,
there is an upstream non-dynamic target that runs command1
and a downstream dynamic target that runs command2
.
command1
produces a data frame of arguments to
command2
, and command2
dynamically maps over
these arguments in batches.
Value
A list of new target objects. See the "Target objects" section for background.
Target objects
Most tarchetypes
functions are target factories,
which means they return target objects
or lists of target objects.
Target objects represent skippable steps of the analysis pipeline
as described at https://books.ropensci.org/targets/.
Please read the walkthrough at
https://books.ropensci.org/targets/walkthrough.html
to understand the role of target objects in analysis pipelines.
For developers, https://wlandau.github.io/targetopia/contributing.html#target-factories explains target factories (functions like this one which generate targets) and the design specification at https://books.ropensci.org/targets-design/ details the structure and composition of target objects.
Replicate-specific seeds
In ordinary pipelines, each target has its own unique deterministic
pseudo-random number generator seed derived from its target name.
In batched replicate, however, each batch is a target with multiple
replicate within that batch. That is why tar_rep()
and friends give each replicate its own unique seed.
Each replicate-specific seed is created
based on the dynamic parent target name,
tar_option_get("seed")
(for targets
version 0.13.5.9000 and above),
batch index, and rep-within-batch index.
The seed is set just before the replicate runs.
Replicate-specific seeds are invariant to batching structure.
In other words,
tar_rep(name = x, command = rnorm(1), batches = 100, reps = 1, ...)
produces the same numerical output as
tar_rep(name = x, command = rnorm(1), batches = 10, reps = 10, ...)
(but with different batch names).
Other target factories with this seed scheme are tar_rep2()
,
tar_map_rep()
, tar_map2_count()
, tar_map2_size()
,
and tar_render_rep()
.
For the tar_map2_*()
functions,
it is possible to manually supply your own seeds
through the command1
argument and then invoke them in your
custom code for command2
(set.seed()
, withr::with_seed
,
or withr::local_seed()
). For tar_render_rep()
,
custom seeds can be supplied to the params
argument
and then invoked in the individual R Markdown reports.
Likewise with tar_quarto_rep()
and the execute_params
argument.
See Also
Other branching:
tar_combine()
,
tar_combine_raw()
,
tar_map()
,
tar_map2()
,
tar_map2_count_raw()
,
tar_map2_raw()
,
tar_map2_size()
,
tar_map2_size_raw()
,
tar_map_rep()
,
tar_map_rep_raw()
,
tar_rep()
,
tar_rep2()
,
tar_rep2_raw()
,
tar_rep_map()
,
tar_rep_map_raw()
,
tar_rep_raw()
Examples
if (identical(Sys.getenv("TAR_LONG_EXAMPLES"), "true")) {
targets::tar_dir({ # tar_dir() runs code from a temporary directory.
targets::tar_script({
tarchetypes::tar_map2_count(
x,
command1 = tibble::tibble(
arg1 = arg1,
arg2 = seq_len(6)
),
command2 = tibble::tibble(
result = paste(arg1, arg2),
random = sample.int(1e9, size = 1),
length_input = length(arg1)
),
values = tibble::tibble(arg1 = letters[seq_len(2)]),
batches = 3
)
})
targets::tar_make()
targets::tar_read(x)
})
}