Automation scripts usually run a small set of tasks in a fixed order.

Program

Play the script to change how many steps are included in the workflow.

step_count
task_sequence.R
Replay: real traced execution (multi-file project)
step_count <- 3
steps <- c("load", "clean", "summarize", "publish")
selected <- steps[seq_len(step_count)]
label <- paste(selected, collapse = " > ")
cat(label, "\n", sep = "")
step_count <- 2
steps <- c("load", "clean", "summarize", "publish")
selected <- steps[seq_len(step_count)]
label <- paste(selected, collapse = " > ")
cat(label, "\n", sep = "")
step_count <- 4
steps <- c("load", "clean", "summarize", "publish")
selected <- steps[seq_len(step_count)]
label <- paste(selected, collapse = " > ")
cat(label, "\n", sep = "")
  1. step_count ← 3

    1step_count <- 32steps <- c("load", "clean", "summarize", "publish")
    values this step3step_count
  2. steps ← load, clean, summarize, publish

    1step_count <- 32steps <- c("load", "clean", "summarize", "publish")3selected <- steps[seq_len(step_count)]
    values this stepload, clean, summarize, publishsteps
  3. selected ← load, clean, summarize

    2steps <- c("load", "clean", "summarize", "publish")3selected <- steps[seq_len(step_count)]4label <- paste(selected, collapse = " > ")
    values this stepload, clean, summarizeselected3step_count
  4. label ← load > clean > summarize

    3selected <- steps[seq_len(step_count)]4label <- paste(selected, collapse = " > ")5cat(label, "\n", sep = "")
    values this stepload > clean > summarizelabel3 stepsselected
  5. cat(label, " ", sep = "")

    4label <- paste(selected, collapse = " > ")5cat(label, "\n", sep = "")
    outputload > clean > summarize
    values this stepload > clean > summarizelabel
  1. step_count ← 2

    1step_count <- 22steps <- c("load", "clean", "summarize", "publish")
    values this step2step_count
  2. steps ← load, clean, summarize, publish

    1step_count <- 22steps <- c("load", "clean", "summarize", "publish")3selected <- steps[seq_len(step_count)]
    values this stepload, clean, summarize, publishsteps
  3. selected ← load, clean

    2steps <- c("load", "clean", "summarize", "publish")3selected <- steps[seq_len(step_count)]4label <- paste(selected, collapse = " > ")
    values this stepload, cleanselected2step_count
  4. label ← load > clean

    3selected <- steps[seq_len(step_count)]4label <- paste(selected, collapse = " > ")5cat(label, "\n", sep = "")
    values this stepload > cleanlabel2 stepsselected
  5. cat(label, " ", sep = "")

    4label <- paste(selected, collapse = " > ")5cat(label, "\n", sep = "")
    outputload > clean
    values this stepload > cleanlabel
  1. step_count ← 4

    1step_count <- 42steps <- c("load", "clean", "summarize", "publish")
    values this step4step_count
  2. steps ← load, clean, summarize, publish

    1step_count <- 42steps <- c("load", "clean", "summarize", "publish")3selected <- steps[seq_len(step_count)]
    values this stepload, clean, summarize, publishsteps
  3. selected ← load, clean, summarize, publish

    2steps <- c("load", "clean", "summarize", "publish")3selected <- steps[seq_len(step_count)]4label <- paste(selected, collapse = " > ")
    values this stepload, clean, summarize, publishselected4step_count
  4. label ← load > clean > summarize > publish

    3selected <- steps[seq_len(step_count)]4label <- paste(selected, collapse = " > ")5cat(label, "\n", sep = "")
    values this stepload > clean > summarize > publishlabel4 stepsselected
  5. cat(label, " ", sep = "")

    4label <- paste(selected, collapse = " > ")5cat(label, "\n", sep = "")
    outputload > clean > summarize > publish
    values this stepload > clean > summarize > publishlabel
ordered steps A character vector can model the ordered tasks in a workflow.
prefix `seq_len(step_count)` selects the first tasks to run.
workflow label Joining selected tasks makes the planned automation order visible.