A generated report is easier to assemble when each section has a clear title and body text before rendering.

Program

Play the script to choose how many sections are included in a report outline.

section_count
report_sections.R
Replay: real traced execution (multi-file project)
titles <- c("Summary", "Method", "Result")
bodies <- c("daily totals", "fixed rules", "ready")
section_count <- 2
chosen_titles <- titles[seq_len(section_count)]
chosen_bodies <- bodies[seq_len(section_count)]
sections <- paste(chosen_titles, chosen_bodies, sep = ":")
label <- paste(sections, collapse = "|")
cat(label, "\n", sep = "")
titles <- c("Summary", "Method", "Result")
bodies <- c("daily totals", "fixed rules", "ready")
section_count <- 1
chosen_titles <- titles[seq_len(section_count)]
chosen_bodies <- bodies[seq_len(section_count)]
sections <- paste(chosen_titles, chosen_bodies, sep = ":")
label <- paste(sections, collapse = "|")
cat(label, "\n", sep = "")
titles <- c("Summary", "Method", "Result")
bodies <- c("daily totals", "fixed rules", "ready")
section_count <- 3
chosen_titles <- titles[seq_len(section_count)]
chosen_bodies <- bodies[seq_len(section_count)]
sections <- paste(chosen_titles, chosen_bodies, sep = ":")
label <- paste(sections, collapse = "|")
cat(label, "\n", sep = "")
  1. titles ← Summary, Method, Result

    1titles <- c("Summary", "Method", "Result")2bodies <- c("daily totals", "fixed rules", "ready")
    values this stepSummary, Method, Resulttitles
  2. bodies ← daily totals, fixed rules, ready

    1titles <- c("Summary", "Method", "Result")2bodies <- c("daily totals", "fixed rules", "ready")3section_count <- 2
    values this stepdaily totals, fixed rules, readybodies
  3. section_count ← 2

    2bodies <- c("daily totals", "fixed rules", "ready")3section_count <- 24chosen_titles <- titles[seq_len(section_count)]
    values this step2section_count
  4. chosen_titles ← Summary, Method

    3section_count <- 24chosen_titles <- titles[seq_len(section_count)]5chosen_bodies <- bodies[seq_len(section_count)]
    values this stepSummary, Methodchosen_titles2section_count
  5. chosen_bodies ← daily totals, fixed rules

    4chosen_titles <- titles[seq_len(section_count)]5chosen_bodies <- bodies[seq_len(section_count)]6sections <- paste(chosen_titles, chosen_bodies, sep = ":")
    values this stepdaily totals, fixed ruleschosen_bodies2section_count
  6. sections ← Summary:daily totals, Method:fixed rules

    5chosen_bodies <- bodies[seq_len(section_count)]6sections <- paste(chosen_titles, chosen_bodies, sep = ":")7label <- paste(sections, collapse = "|")
    values this stepSummary:daily totals, Method:fixed rulessections2 titleschosen_titles2 bodieschosen_bodies
  7. label ← Summary:daily totals|Method:fixed rules

    6sections <- paste(chosen_titles, chosen_bodies, sep = ":")7label <- paste(sections, collapse = "|")8cat(label, "\n", sep = "")
    values this stepSummary:daily totals|Method:fixed ruleslabel2 sectionssections
  8. cat(label, " ", sep = "")

    7label <- paste(sections, collapse = "|")8cat(label, "\n", sep = "")
    outputSummary:daily totals|Method:fixed rules
    values this stepSummary:daily totals|Method:fixed ruleslabel
  1. titles ← Summary, Method, Result

    1titles <- c("Summary", "Method", "Result")2bodies <- c("daily totals", "fixed rules", "ready")
    values this stepSummary, Method, Resulttitles
  2. bodies ← daily totals, fixed rules, ready

    1titles <- c("Summary", "Method", "Result")2bodies <- c("daily totals", "fixed rules", "ready")3section_count <- 1
    values this stepdaily totals, fixed rules, readybodies
  3. section_count ← 1

    2bodies <- c("daily totals", "fixed rules", "ready")3section_count <- 14chosen_titles <- titles[seq_len(section_count)]
    values this step1section_count
  4. chosen_titles ← Summary

    3section_count <- 14chosen_titles <- titles[seq_len(section_count)]5chosen_bodies <- bodies[seq_len(section_count)]
    values this stepSummarychosen_titles1section_count
  5. chosen_bodies ← daily totals

    4chosen_titles <- titles[seq_len(section_count)]5chosen_bodies <- bodies[seq_len(section_count)]6sections <- paste(chosen_titles, chosen_bodies, sep = ":")
    values this stepdaily totalschosen_bodies1section_count
  6. sections ← Summary:daily totals

    5chosen_bodies <- bodies[seq_len(section_count)]6sections <- paste(chosen_titles, chosen_bodies, sep = ":")7label <- paste(sections, collapse = "|")
    values this stepSummary:daily totalssections1 titlechosen_titles1 bodychosen_bodies
  7. label ← Summary:daily totals

    6sections <- paste(chosen_titles, chosen_bodies, sep = ":")7label <- paste(sections, collapse = "|")8cat(label, "\n", sep = "")
    values this stepSummary:daily totalslabel1 sectionsections
  8. cat(label, " ", sep = "")

    7label <- paste(sections, collapse = "|")8cat(label, "\n", sep = "")
    outputSummary:daily totals
    values this stepSummary:daily totalslabel
  1. titles ← Summary, Method, Result

    1titles <- c("Summary", "Method", "Result")2bodies <- c("daily totals", "fixed rules", "ready")
    values this stepSummary, Method, Resulttitles
  2. bodies ← daily totals, fixed rules, ready

    1titles <- c("Summary", "Method", "Result")2bodies <- c("daily totals", "fixed rules", "ready")3section_count <- 3
    values this stepdaily totals, fixed rules, readybodies
  3. section_count ← 3

    2bodies <- c("daily totals", "fixed rules", "ready")3section_count <- 34chosen_titles <- titles[seq_len(section_count)]
    values this step3section_count
  4. chosen_titles ← Summary, Method, Result

    3section_count <- 34chosen_titles <- titles[seq_len(section_count)]5chosen_bodies <- bodies[seq_len(section_count)]
    values this stepSummary, Method, Resultchosen_titles3section_count
  5. chosen_bodies ← daily totals, fixed rules, ready

    4chosen_titles <- titles[seq_len(section_count)]5chosen_bodies <- bodies[seq_len(section_count)]6sections <- paste(chosen_titles, chosen_bodies, sep = ":")
    values this stepdaily totals, fixed rules, readychosen_bodies3section_count
  6. sections ← Summary:daily totals, Method:fixed rules, Result:ready

    5chosen_bodies <- bodies[seq_len(section_count)]6sections <- paste(chosen_titles, chosen_bodies, sep = ":")7label <- paste(sections, collapse = "|")
    values this stepSummary:daily totals, Method:fixed rules, Result:readysections3 titleschosen_titles3 bodieschosen_bodies
  7. label ← Summary:daily totals|Method:fixed rules|Result:ready

    6sections <- paste(chosen_titles, chosen_bodies, sep = ":")7label <- paste(sections, collapse = "|")8cat(label, "\n", sep = "")
    values this stepSummary:daily totals|Method:fixed rules|Result:readylabel3 sectionssections
  8. cat(label, " ", sep = "")

    7label <- paste(sections, collapse = "|")8cat(label, "\n", sep = "")
    outputSummary:daily totals|Method:fixed rules|Result:ready
    values this stepSummary:daily totals|Method:fixed rules|Result:readylabel
outline Report assembly can start from vectors of section titles and body snippets.
seq_len `seq_len(section_count)` creates the selected section positions.
section `paste(chosen_titles, chosen_bodies, sep = ":")` builds one display block per section.