executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
build-parameterized-reportCreate parameterized Quarto or R Markdown reports that can be rendered with different inputs to generate multiple variations. Covers parameter definitions, programmatic rendering, and batch generation. Use when generating the same report for different departments, regions, or time periods; creating client-specific reports from a single template; building da…
Independent GitHub snapshot · Automated classification · Original documentation governs
建受參之報,以諸入自一範生諸變。
Quarto(report.qmd):
---
title: "Sales Report: `r params$region`"
params:
region: "North America"
year: 2025
include_forecast: true
format:
html:
toc: true
---
R Markdown(report.Rmd):
---
title: "Sales Report"
params:
region: "North America"
year: 2025
include_forecast: true
output: html_document
---
得: YAML 頭含 params: 塊,諸名參各有正類之默值。
敗則: 若渲失以「object 'params' not found」,確 params: 塊正縮於 YAML 頭。Quarto 中 params 必居 YAML 頂級,非嵌 format: 下。
```{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)
```
得: 碼塊以 params$name 引參,條件塊用 #| eval: !expr params$flag(Quarto)。內聯 R 表如 `r params$region` 生動文。
敗則: 若 params$name 返 NULL,驗參名於 YAML 與碼引全合(別大小)。察默值之類正。
單渲:
# 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"
)
得: 單報以自訂參值覆 YAML 默而成渲。輸出檔建於所指之路。
敗則: Quarto 敗者,察 quarto CLI 已裝且於 PATH。R Markdown 敗者,驗 rmarkdown 已裝。確 execute_params(Quarto)或 params(R Markdown)中參名全合 YAML 定。
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
)
})
得: 每區年之合生一 HTML 檔。
敗則: 察 YAML 與碼間參名全合。確諸參值有效。
#| 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
)
得: 驗碼塊於各渲之始行,若參逾範或類誤則以明錯止。
敗則: 若 stopifnot() 之錯言不明,改為明 if (!cond) stop("message") 以清診。
# 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"))
)
得: 輸出檔書於日戳之子目,含述名(如 reports/2025-06/report-europe.html)。
敗則: 若 dir.create() 敗,察父目存而可書。Windows 上驗路不過 260 字。
params$name 之引year: 2025 為整而碼望字。宜明#| eval: !expr params$flag,非 eval = params$flagcallr::r() 以隔create-quarto-report - 基 Quarto 檔立generate-statistical-tables - 適參之表format-apa-report - 參之學報