计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
build-parameterized-report【效率与协作】Parametrisierte Quarto- oder R-Markdown-Berichte erstellen, die mit unterschiedlichen Eingaben gerendert werden koennen, um mehrere Varianten zu erzeugen. Umfasst Parameterdefinitionen, programmatisches Rendering und Batch-Generierung. Verwenden, wenn der gleiche Bericht fuer verschiedene Abteilungen, Regionen oder Zeitraeume erstellt, kundenspezifis…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Berichte erstellen, die Parameter akzeptieren, um mehrere angepasste Varianten aus einer einzelnen Vorlage zu generieren.
Fuer Quarto (report.qmd):
---
title: "Sales Report: `r params$region`"
params:
region: "North America"
year: 2025
include_forecast: true
format:
html:
toc: true
---
Fuer R Markdown (report.Rmd):
---
title: "Sales Report"
params:
region: "North America"
year: 2025
include_forecast: true
output: html_document
---
Erwartet: Der YAML-Header enthaelt einen params:-Block mit benannten Parametern, die jeweils einen Standardwert des korrekten Typs haben.
Bei Fehler: Wenn das Rendering mit "object 'params' not found" fehlschlaegt, sicherstellen, dass der params:-Block korrekt unter dem YAML-Frontmatter eingerueckt ist. Fuer Quarto muss params auf der obersten Ebene des YAML stehen, nicht unter format: verschachtelt.
```{r}
#| label: filter-data
data <- full_dataset |>
filter(region == params$region, year == params$year)
nrow(data)
```
## Overview for `r params$region`
This report covers the `r params$region` region for `r params$year`.
```{r}
#| label: forecast
#| eval: !expr params$include_forecast
# This chunk only runs when include_forecast is TRUE
forecast_model <- forecast::auto.arima(data$sales)
forecast::autoplot(forecast_model)
```
Erwartet: Code-Chunks referenzieren Parameter ueber params$name und bedingte Chunks verwenden #| eval: !expr params$flag fuer Quarto. Inline-R-Ausdruecke wie `r params$region` rendern dynamischen Text.
Bei Fehler: Wenn params$name NULL zurueckgibt, sicherstellen, dass der Parametername exakt zwischen YAML-Definition und Code-Referenz uebereinstimmt (Gross-/Kleinschreibung beachten). Pruefen, ob Standardwerte den korrekten Typ haben.
Einzelnes Rendering:
# Quarto
quarto::quarto_render(
"report.qmd",
execute_params = list(region = "Europe", year = 2025)
)
# R Markdown
rmarkdown::render(
"report.Rmd",
params = list(region = "Europe", year = 2025),
output_file = "report-europe-2025.html"
)
Erwartet: Ein einzelner Bericht wird erfolgreich mit benutzerdefinierten Parameterwerten gerendert, die die YAML-Standardwerte ueberschreiben. Die Ausgabedatei wird am angegebenen Pfad erstellt.
Bei Fehler: Wenn Quarto-Rendering fehlschlaegt, pruefen, ob quarto-CLI installiert und im PATH ist. Wenn R-Markdown-Rendering fehlschlaegt, sicherstellen, dass rmarkdown installiert ist. Parameternamen in execute_params (Quarto) oder params (R Markdown) muessen exakt mit den YAML-Definitionen uebereinstimmen.
regions <- c("North America", "Europe", "Asia Pacific", "Latin America")
years <- c(2024, 2025)
# Generate all combinations
combinations <- expand.grid(region = regions, year = years, stringsAsFactors = FALSE)
# Render each
purrr::pwalk(combinations, function(region, year) {
output_name <- sprintf("report-%s-%d.html",
tolower(gsub(" ", "-", region)), year)
quarto::quarto_render(
"report.qmd",
execute_params = list(region = region, year = year),
output_file = output_name
)
})
Erwartet: Eine HTML-Datei pro Region-Jahr-Kombination.
Bei Fehler: Pruefen, dass Parameternamen exakt zwischen YAML und Code uebereinstimmen. Sicherstellen, dass alle Parameterwerte gueltig sind.
#| label: validate-params
stopifnot(
"Region must be a valid region" = params$region %in% valid_regions,
"Year must be numeric" = is.numeric(params$year),
"Year must be reasonable" = params$year >= 2020 && params$year <= 2030
)
Erwartet: Der Validierungs-Code-Chunk wird zu Beginn jedes Renderings ausgefuehrt und stoppt mit einer informativen Fehlermeldung, wenn ein Parameter ausserhalb des Bereichs liegt oder den falschen Typ hat.
Bei Fehler: Wenn stopifnot() wenig hilfreiche Fehlermeldungen erzeugt, auf explizite if (!cond) stop("message")-Aufrufe umstellen fuer klarere Diagnose.
# Create output directory
output_dir <- file.path("reports", format(Sys.Date(), "%Y-%m"))
dir.create(output_dir, recursive = TRUE, showWarnings = FALSE)
# Render with output path
quarto::quarto_render(
"report.qmd",
execute_params = list(region = region),
output_file = file.path(output_dir, paste0("report-", region, ".html"))
)
Erwartet: Ausgabedateien werden in ein datumsbezogenes Unterverzeichnis mit beschreibenden Namen geschrieben (z.B. reports/2025-06/report-europe.html).
Bei Fehler: Wenn dir.create() fehlschlaegt, pruefen, ob das uebergeordnete Verzeichnis existiert und beschreibbar ist. Unter Windows sicherstellen, dass die Pfadlaenge 260 Zeichen nicht ueberschreitet.
params$name-Referenzen im Code uebereinstimmenyear: 2025 als Integer parsen, aber Code erwartet Character. Explizit sein.#| eval: !expr params$flag verwenden, nicht eval = params$flag in Quartocallr::r() fuer Isolation erwaegen.create-quarto-report - Basis-Quarto-Dokumenteinrichtunggenerate-statistical-tables - Tabellen, die sich an Parameter anpassenformat-apa-report - Parametrisierte akademische Berichte