# Daten basierend auf Parameter filtern
selected_penguins <- penguins %>%
filter(species == params$species) %>%
drop_na()Bisher haben wir unseren Report nur für Adelie-Pinguine erstellt. Aber was, wenn wir denselben Report für alle drei Pinguinarten möchten? Statt drei separate Dokumente zu pflegen, können wir Parameter verwenden: Ein Template, das beim Rendern mit verschiedenen Werten gefüllt wird.
Das Konzept
Ein parametrisierter Report ist wie ein Formular mit Lücken:
- Das Template definiert Parameter mit Standardwerten
- Beim Rendern können andere Werte übergeben werden
- Der Report passt sich automatisch an
Parameter definieren
Parameter werden im YAML-Header unter params: definiert:
---
title: "Pinguin-Report"
format: docx
params:
species: "Adelie"
---Hier ist species der Parametername und "Adelie" der Standardwert.
Parameter im Code verwenden
Im R-Code greift man mit params$parametername auf Parameter zu:
Der Fließtext kann ebenfalls Parameter enthalten:
Dieser Report analysiert **Adelie**-Pinguine.Ein vollständiges Beispiel
Hier ist unser Pinguin-Report als parametrisierte Version:
---
title: "Pinguin-Report"
subtitle: "Adelie-Pinguine"
author: "Forschungsteam"
date: today
format: docx
params:
species: "Adelie"
execute:
echo: false
warning: false
message: false
---# Einleitung
Dieser Report analysiert **Adelie**-Pinguine aus dem
Palmer Penguins Datensatz. Der Datensatz umfasst 146
Individuen dieser Art.
# Deskriptive Statistik
```{r}
#| label: tbl-params-summary
#| tbl-cap: "Zusammenfassung der Messwerte"
selected_penguins %>%
summarise(
N = n(),
`Schnabellänge (mm)` = round(mean(bill_length_mm), 1),
`Körpermasse (g)` = round(mean(body_mass_g), 0)
) %>%
flextable() %>%
autofit()
```
# Visualisierung
```{r}
#| label: fig-params-scatter
#| fig-cap: "Schnabelmaße der ausgewählten Pinguinart"
#| fig-width: 5
#| fig-height: 4
ggplot(selected_penguins, aes(x = bill_length_mm, y = bill_depth_mm)) +
geom_point(alpha = 0.6) +
labs(
x = "Schnabellänge (mm)",
y = "Schnabeltiefe (mm)",
title = glue::glue("{params$species}-Pinguine")
) +
theme_minimal()
```Reports mit verschiedenen Parametern rendern
In RStudio
- Klicke auf den Pfeil neben dem Render-Button
- Wähle “Render with Parameters…”
- Ein Dialog öffnet sich, in dem man die Werte ändern kann
Via Kommandozeile
quarto render report.qmd -P species:GentooMehrere Parameter:
quarto render report.qmd -P species:Chinstrap -P year:2008Programmatisch in R
# Einen Report rendern
quarto::quarto_render(
input = "report.qmd",
execute_params = list(species = "Gentoo"),
output_file = "report_gentoo.docx"
)Alle Varianten auf einmal rendern
Mit einer Schleife kann man alle Versionen automatisch erzeugen:
Das erzeugt drei Dateien: report_adelie.docx, report_chinstrap.docx, report_gentoo.docx.
Mehrere Parameter
Man kann beliebig viele Parameter definieren:
params:
species: "Adelie"
island: "Biscoe"
min_year: 2007
include_plots: trueUnd im Code:
Parametertypen
Parameter können verschiedene Typen haben:
params:
species: "Adelie" # Text
sample_size: 100 # Zahl
include_plots: true # Boolean
islands: # Liste
- Biscoe
- DreamDynamische Titel
Der Titel kann Parameter enthalten:
---
title: "Adelie\-Pinguin\-Analyse"
params:
species: "Adelie"
---Oder einfacher im Subtitle:
---
title: "Pinguin-Analyse"
subtitle: "Adelie"
params:
species: "Adelie"
---Praktische Anwendungsfälle
| Anwendung | Parameter |
|---|---|
| Reports pro Region |
region, year
|
| Kundenberichte |
client_name, client_id
|
| Testversionen | include_draft_watermark: true |
| Sprachversionen | language: "de" |
| Datenquellen | data_file: "data_2024.csv" |
Tipps
Standardwerte sinnvoll setzen
Der Standardwert sollte ein typischer, funktionierender Wert sein — so kann man das Template einfach testen.
Parameterwerte validieren
Am Anfang des Dokuments prüfen, ob die Parameter gültig sind:
Ausgabedateinamen
Bei der Massenproduktion sinnvolle Dateinamen verwenden:
output_file = glue::glue(
"report_{params$species}_{Sys.Date()}.docx"
)- Nimm den bisherigen Pinguin-Report
- Füge einen
species-Parameter mit Standardwert “Adelie” hinzu - Ersetze alle Stellen, die auf Adelie verweisen, durch
params$species - Rendere den Report mit verschiedenen Spezies (Adelie, Chinstrap, Gentoo)
- Bonus: Schreibe eine Schleife, die alle drei Reports automatisch erzeugt
Weiterführende Ressourcen
- Quarto Parameters — Offizielle Dokumentation
- Parameterized Reporting with Quarto — Rendering-Optionen
Was kommt als Nächstes
Im letzten Kapitel werfen wir einen Blick über den Word-Tellerrand: PDF-Export mit Typst, Präsentationen mit Reveal.js, und HTML-Dokumente — alles mit demselben Quarto-Wissen.
Zitat
@online{schmidt2026,
author = {{Dr. Paul Schmidt}},
publisher = {BioMath GmbH},
title = {10. Parametrisierte Reports},
date = {2026-02-07},
url = {https://biomathcontent.netlify.app/de/content/quarto/10_parameters.html},
langid = {de}
}