tar_map_rep | R Documentation |
Define targets for batched replication within static branches for data frames.
tar_map_rep()
expects an unevaluated symbol for the name
argument
and an unevaluated expression for command
,
whereas tar_map_rep_raw()
expects a character string for name
and an evaluated expression object for command
.
tar_map_rep(
name,
command,
values = NULL,
names = NULL,
descriptions = tidyselect::everything(),
columns = tidyselect::everything(),
batches = 1,
reps = 1,
rep_workers = 1,
combine = TRUE,
delimiter = "_",
unlist = FALSE,
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")
)
tar_map_rep_raw(
name,
command,
values = NULL,
names = NULL,
descriptions = quote(tidyselect::everything()),
columns = quote(tidyselect::everything()),
batches = 1,
reps = 1,
rep_workers = 1,
combine = TRUE,
delimiter = "_",
unlist = FALSE,
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")
)
name |
Name of the target.
|
command |
R code for a single replicate. Must return
a data frame when run.
|
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 |
Subset of |
descriptions |
Names of a column in |
columns |
A tidyselect expression to select which columns of |
batches |
Number of batches. This is also the number of dynamic
branches created during |
reps |
Number of replications in each batch. The total number
of replications is |
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. |
combine |
Logical of length 1, whether to statically combine all the results into a single target downstream. |
delimiter |
Character of length 1, string to insert between other strings when creating names of targets. |
unlist |
Logical, whether to flatten the returned list of targets.
If |
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. Possible values:
For cloud-based dynamic files
(e.g. |
garbage_collection |
Logical: |
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 string to control when the output of the target
is saved to storage. Only relevant when using
|
retrieval |
Character string to control when the current target
loads its dependencies into memory before running.
(Here, a "dependency" is another target upstream that the current one
depends on.) Only relevant when using
|
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 |
A list of new target objects. See the "Target objects" section for background.
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.
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.
Other branching:
tar_map2()
,
tar_map2_count()
,
tar_map2_size()
,
tar_rep()
,
tar_rep2()
,
tar_rep_map()
,
tar_rep_map_raw()
if (identical(Sys.getenv("TAR_LONG_EXAMPLES"), "true")) {
targets::tar_dir({ # tar_dir() runs code from a temporary directory.
targets::tar_script({
library(tarchetypes)
# Just a sketch of a Bayesian sensitivity analysis of hyperparameters:
assess_hyperparameters <- function(sigma1, sigma2) {
# data <- simulate_random_data() # user-defined function
# run_model(data, sigma1, sigma2) # user-defined function
# Mock output from the model:
posterior_samples <- stats::rnorm(1000, 0, sigma1 + sigma2)
tibble::tibble(
posterior_median = median(posterior_samples),
posterior_quantile_0.025 = quantile(posterior_samples, 0.025),
posterior_quantile_0.975 = quantile(posterior_samples, 0.975)
)
}
hyperparameters <- tibble::tibble(
scenario = c("tight", "medium", "diffuse"),
sigma1 = c(10, 50, 50),
sigma2 = c(10, 5, 10)
)
list(
tar_map_rep(
name = sensitivity_analysis,
command = assess_hyperparameters(sigma1, sigma2),
values = hyperparameters,
names = tidyselect::any_of("scenario"),
batches = 2,
reps = 3
),
tar_map_rep_raw(
name = "sensitivity_analysis2",
command = quote(assess_hyperparameters(sigma1, sigma2)),
values = hyperparameters,
names = tidyselect::any_of("scenario"),
batches = 2,
reps = 3
)
)
})
targets::tar_make()
targets::tar_read(sensitivity_analysis)
})
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.