Executes the three task tables in dependency order - sample, fit, then
hc - by looping over each table with purrr::pmap() and looking up each
task's parent result by the parent's <step>_id foreign key. The fit step
truncates its parent sample inline (head(sample, nrow)) before fitting. The
runner does no task expansion of its own (it consumes ssd_scenario_tasks());
it just threads outputs forward and returns the collected per-step results.
Arguments
- scenario
An
ssdsims_scenariofromssd_define_scenario().
Value
A named list with sample, fit, and hc elements: each the
corresponding task table augmented with a list column of per-task results
(sample draws, fits objects, and hc tibbles).
Details
This is the no-frills baseline: it runs in-process, with no targets
dependency, no shard grouping or partition_by, and no Parquet I/O.
It is reproducible without an external seed. The runner opens one
local_dqrng_backend() scope and seeds each sample/fit/hc task exactly
once through its *_data_task_primer() wrapper, with seed = scenario$seed
and a per-task primer derived from the task's canonical identity
(task_primer() over the task_axes(step) columns). Because each task's
(seed, primer) pair fully determines its RNG starting point, two runs of a
scenario with a fixed seed yield identical results, and a task's result is
independent of the order in which tasks run. These same
*_data_task_primer() wrappers are the per-task entry point a future
targets shard body and the replay helper (TARGETS-DESIGN.md §7) reuse.
The scenario retains the data frames it was built from, so the runner reads
them directly - no separate data argument. min_pmix names are resolved
against ssdtools until the registry roadmap step lands.
Examples
scenario <- ssd_define_scenario(
ssddata::ccme_boron,
nsim = 1L,
nrow = 6L,
seed = 42L,
dists = "lnorm"
)
out <- ssd_run_scenario_baseline(scenario)
out$hc
#> <ssdsims_tasks: hc>
#> axes: dataset, sim, replace, nrow, rescale, computable, at_boundary_ok, min_pmix, range_shape1, range_shape2, ci, nboot, est_method, ci_method, parametric
#> tasks: 1
#> # A tibble: 1 × 18
#> dataset sim replace nrow rescale computable at_boundary_ok min_pmix
#> <chr> <int> <lgl> <int> <lgl> <lgl> <lgl> <chr>
#> 1 ccme_boron 1 FALSE 6 FALSE FALSE TRUE ssd_min_pmix
#> # ℹ 10 more variables: range_shape1 <list>, range_shape2 <list>, ci <lgl>,
#> # nboot <int>, est_method <chr>, ci_method <chr>, parametric <lgl>,
#> # hc_id <chr>, fit_id <chr>, hc <list>