Am Ende einer jeden Datenanalyse müssen Ergebnisse berichtet werden. Neben einem Bericht über das Vorgehen, den konkreten Ergebnissen und der Ableitung von Schlussfolgerungen aus diesen, erfolgt die Kommunikation häufig auch im Rahmen von Präsentationen. Im Idealfall sollten diese Formate reproduzierbar erstellt werden. In diesem Beitrag wird erläutert, was darunter zu verstehen ist und wie das Publikationssystem Quarto helfen kann.

Was ist reproduzierbares Reporting?

Wer kennt es nicht: Die Datenanalyse erfolgt in einem Statistikprogramm, die Berichtserstellung in Word und die Präsentation wird in Powerpoint erstellt. Die Nutzung verschiedener Programme führt dazu, dass Ergebnistabellen oder Grafiken häufig per Copy-and-paste zwischen den verschiedenen Programmen hin und her kopiert werden.

Hierdurch können zum einen Fehler bei der Erstellung der Dokumente entstehen, zum anderen ist aber häufig durch ein solches Vorgehen nach einiger Zeit nicht mehr immer nachvollziehbar, wie bestimmte Tabellen oder Grafiken entstanden sind.

Daher sollte bei der Erstellung von Berichten, Reports und Präsentationen im Rahmen von Datenanalysen ein reproduzierbares Vorgehen gewählt werden. Hierdurch versteht man, dass die Datenanalyse und die Erstellung des Berichtsformats jederzeit wiederholt werden kann und zum gleichen Ergebnis kommt. Ein manuelles Kopieren bzw. Verschieben von Grafiken und Tabellen ist hiermit nicht mehr nötig. Weiterhin ist auch zu einem späteren Zeitpunkt nachvollziehbar, welche Analysen gerechnet wurden und die Berichte und Präsentationen entstanden sind.

Um solche reproduzierbaren Reports erstellen zu können, sollte für die Datenanalyse R oder Python eingesetzt werden. Da beide Programmiersprachen syntaxbasiert sind, ist dies ein erster wichtiger Schritt für die Reproduzierbarkeit. Um dann entsprechende Berichte und Präsentationen zu erstellen, hat sich in den letzten Jahren Quarto als Publikationssystem als geeignet erwiesen.

Was ist Quarto?

Logo von quarto

Quarto ist ein Publikationssystem, das von der Firma Posit entwickelt und unter einer Open-Source-Lizenz zur Verfügung gestellt wird. Hierdurch ist eine kostenfreie Nutzung der Software möglich. Letztendlich ist Quarto eine Weiterentwicklung von RMarkdown, das auch schon zuvor in R die Möglichkeit eines reproduzierbaren Reportings ermöglicht hat.

Der Vorteil von Quarto ist, dass neben R auch noch weitere Sprachen zur Datenanalyse unterstützt werden. Neben R ist dies Python, Julia und Observable. Auch ist Quarto in die gängigen Editoren wie RStudio für R, Visual Studio Code für Python oder der neuen IDE für Data Science Positron integrierbar.

Ein weiterer Vorteil von Quarto ist, dass verschiedene Formate unterstützt werden und man daher auch mit einer Datei unter anderem einen Bericht in einem HTML-Format und einer PDF-Datei ausgeben kann. Auch wurde Quarto so angelegt, dass dieses durch sog. Extensions erweiterbar ist und damit auch andere Entwickler Ergänzungen für das Quarto-Ökosystem beisteuern können.

Quarto installieren

Möchte man mit Quarto arbeiten, müssen zwei Schritte ausgeführt werden. In einem ersten Schritt muss die aktuelle Version von Quarto von der Homepage heruntergeladen und auf dem eigenen PC installiert werden.

Je nachdem, welcher Editor zum Einsatz kommt, kann es sein, dass innerhalb des Editors noch weitere Schritte nötig sind. Nutzt man RStudio sollte nach der Installation der aktuellen Version die Möglichkeit der Erstellung von Quarto-Dokumenten und Projekten zur Verfügung stehen, da mit RStudio auch Quarto installiert wird. Demgegenüber muss bei der Nutzung von Visual Studio Code noch die entsprechende Quarto-Extension installiert werden.

Die Grundlage zum Schreiben: Markdown

Möchte man Dokumente und Präsentationen mit Quarto erstellen, ist die Grundlage Markdown. Markdown ist eine vereinfachte Anzeigesprache. Arbeitet man mit Markdown, verwendet man nicht, wie beispielsweise in Word, einen visuellen Editor, mit dem man einstellen kann, was als Überschrift oder Link formatiert werden soll, sondern diese Hinweis werden mit Auszeichnungselementen gegeben. Quarto verarbeitet dann die erstellte Datei und erstellt daraus die Datei im entsprechenden Format, z. B. als HTML- oder PDF-Datei. Hierbei werden die Auszeichnungselemente berücksichtigt und beispielsweise die entsprechenden Überschriften erstellt.

Im nachfolgenden Beispiel werden einige Beispiele der Markdowns-Syntax dargestellt:

# Überschrift auf Ebene 1
## Überschrift auf Ebene 2
Normalen Text kann man ganz normal schreiben. Möchte man etwas **fett** schreiben wird das Word in doppelte Sternchen gesetzt. 
*Kursiver Text* wird erstellt, in dem die Wörter oder das Wort mit einem Sternchen umgeben werden.
Leerzeilen im Text erzeugen einen neuen Absatz.
Aufzählungen können wie folgt dargestellt werden:
* Aufzählung Ebene 1
*  Aufzählung Ebene 1.2
* Aufzählung Ebene 1
Bei einem Link wird die Beschriftung in eckige Klammern gesetzt und danach werden in runden Klammern die URL angegeben. Ein Beispiel: [Die Startseite des Blogs Soziale Wirkungen finden Sie hier.](https://blog.soziale-wirkung.de)
Code language: PHP (php)

Die Output-Formate

Einer der großen Vorteile von Quarto sind die verschiedenen Output-Formate, die angeboten werden. Neben Standard-HTML-Output können auch Word- und PDF-Dokumente erzeugt, Präsentationen erstellt oder auch umfangreiche Buchprojekte umgesetzt werden.

In welchem Format der Output erzeugt wird, kann am Anfang im sog. YAML-Header der Datei festgelegt werden. Quarto-Dateien werden immer mit der Endung .qmd gespeichert. Nachfolgendes Beispiel wäre ein Header für ein Dokument, das als HTML- und PDF-Output ausgegeben wird:

---
title: "Testdokument"
author: "Sebastian Ottmann"
format:
	html: default
	pdf: default
---Code language: JavaScript (javascript)

Quarto-Dokumente rendern

Möchte man eine Quarto-Datei verarbeiten und in den Output überführen, muss der Befehl quarto render eingegeben werden. Sofern kein eigenes Quarto-Projekt definiert wurde, muss danach noch die entsprechende Quarto-Datei angegeben werden.

In RStudio gibt es automatisch beim Bearbeiten eines Quarto-Dokuments die Schaltfläche „Render“, mit der das Dokument erstellt werden kann. Hat man mehrere Output-Formate definiert, kann man mit dem Pfeil neben „Render“ das jeweilige Format auswählen. In Visual Studio Code steht ebenfalls eine „Preview“-Schaltfläche zur Verfügung.

Eine gute Übersicht über den Prozess der Erstellung von Dokumenten mit Quarto ist hier auf der Quarto-Homepage zu finden.

Der Standard: HTML

Legt man ein Dokument in Quarto an, ist das Standard-Output-Format eine HTML-Seite. Der Vorteil dieses Formats ist es, dass es in jedem Browser geöffnet wird. Quarto ergänzt das Dokument um allgemeine Angaben wie den Namen des Autors (sofern im YAML-Header definiert) und um ein Inhaltsverzeichnis.

Erstellt man einen Output als HTML-Datei, empfiehlt es sich, die Definition des Formats im YAML-Header wie folgt anzupassen:

---
title: "Testdokument"
author: "Sebastian Ottmann"
format:
	html: 
		self-contained: true
---Code language: PHP (php)

Durch diese Einstellung wird eine HTML-Datei erstellt, in der alle Inhalte integriert sind. Dies hat den Vorteil, dass dann nur die entsprechende HTML-Datei verschickt werden muss und der Empfänger diese ohne Probleme öffnen kann.

Weitere Informationen zur Gestaltung von HTML-Dokumenten mit Quarto sind hier zu finden.

PDF- und Word-Dokumente

Alternativ kann der Output auch als PDF- und Word-Dokument erzeugt werden. Zur Erstellung von PDF-Dokumenten nutzt Quarto u. a. LaTeX. Welche Formatierungsmöglichkeiten im Rahmen von PDF-Dokumenten zur Verfügung stehen, kann hier abgerufen werden.

Der Vorteil der Generierung von Word-Dokumenten ist, dass Word in vielen Organisationen genutzt wird, um Dokumente und Berichte zu erstellen. Somit ist eine Weiterarbeit mit der entsprechenden Word-Datei möglich. Eine Übersicht über die Formatierungsmöglichkeiten von Word-Dokumenten findet man hier. Ich persönlich bevorzuge bei der Erstellung von Word-Dokumenten aus R heraus immer noch RMarkdown im Zusammenspiel mit dem Paket officedown von David Gohel. Durch die Kombination sind aus meiner Sicht mehr individuelle Formatierungen möglich und man kann damit auch gut Reports von Einzelauswertungen automatisieren. Wie mit den beiden Paketen in R gearbeitet wird, habe ich in einem Blog-Beitrag hier zusammengefasst.

Präsentationen: Revealjs und PowerPoint

Neben Dokumenten können mit Quarto auch Präsentationen erstellt werden. Als Ausgabeformat steht hier zum einen Powerpoint zur Verfügung (mehr Informationen hier). Auch hier ist der Vorteil, dass Powerpoint in vielen Organisationen eingesetzt wird und man daher die Datei einfach weiterbearbeiten kann.

Als Alternative können in Quarto auch Präsentationen mit reveal.js erstellt werden. Damit wird eine Präsentation als HTML-Datei gespeichert, die man dann in einem Browser öffnen und präsentieren kann. Auch bei diesem Ausgabeformat gibt es viele Möglichkeiten, die Präsentation an die eigenen Bedürfnisse anzupassen. Alle Informationen dazu findet man auf der Quarto-Homepage.

Zeitschriftenbeiträge

Ein weiterer Vorteil von Quarto ist, dass man Templates, also Vorlagen, anlegen kann. Gerade bei der Erstellung von Beiträgen für Fachzeitschriften ist dies sehr hilfreich, da die Vorlage dann schon entsprechend den Vorgaben des Verlages gestaltet ist.

Bei der Erstellung von Zeitschriftenbeiträgen (in Quarto Manuscripts) gibt es auch vielfältige Formatierungsmöglichkeiten. Auf der Homepage von Quarto stehen auch bereits verschiedene Templates von Zeitschriften zur Verfügung. Allerdings bisher nur für englischsprachige Zeitschriften.

Ein weiterer Vorteil von „Manuscripts“ in Quarto ist, dass die verwendeten Auswertungsnotebooks und Datensätze in den Artikel integriert werden. So kann der Beitrag zusammen mit den zugrundeliegenden Daten veröffentlicht werden und man kann eine wirkliche Reproduzierbarkeit der Ergebnisse herstellen. Als Standardformat wird ein HTML-Output ausgegeben. Hier ist ein Beispiel zu finden.

Weitere Formate: Dashboards, Bücher und Webseiten

Neben den beschriebenen Formaten gibt es noch weitere Output-Formate, die mit Quarto erstellt werden können. So können Dashboards, Webseiten (inkl. Blogs) und auch ganze Bücher erstellt werden. Ein bekanntes Beispiel für ein (Online-)Buch, das mit Quarto erstellt wurde, ist die zweite Auflage von R for Data Science von Hadley Wickham, Mine Cetinkaya-Rundel & Garrett Grolemund.

Die Vielfalt an Ausgabenformaten zeigt nochmal sehr gut auf, warum Quarto ein geeignetes System ist, um Ergebnisse aus Datenanalysen zu Berichten. Durch die verschiedenen Formate kann man mit einem überschaubaren Aufwand die entsprechenden Ausgaben erstellt, egal ob es um ein Dokument, einen Bericht oder eine Präsentation geht.

Datenanalyse in die Dokumente integrieren

Quarto kann natürlich auch genutzt werden, wenn man ein reines Text-Dokument erstellt. Der große Vorteil im Bereich der Datenanalyse ist aber, dass man in das Dokument direkt Datenauswertungen einfügen kann. Dies geht über sogenannte Code-Chunks. Auf der Homepage von Quarto findet man umfangreiche Erläuterungen zur Nutzung mit R-, Python– und Julia-Code.

Durch das Einfügen von Code-Chunks ist es möglich, dass man den Code für die Datenanalyse direkt in das Dokument integriert. Möchte man beispielsweise ein Diagramm einfügen, kann der entsprechende Code eingefügt werden. Beim Erstellen des Codes wandelt dann Quarto den Code in die entsprechende Darstellung um.

Fügt man Code-Chunks ein, kann auch gesteuert werden, ob der spätere Leser den zugrundeliegenden Code sehen soll oder nicht. Weiterhin kann auch im Fließtext auf entsprechende Code-Blöcke Bezug genommen werden, zum Beispiel durch die Definition von Beschriftungslabels.

In nachfolgendem Beispiel wird ein Code-Chunk zur Erstellung eines Streudiagramms eingefügt. Es wurde eingestellt, dass der zugrundeliegende Code nicht angezeigt wird (echo: false) ebenso wie Warnmeldungen (warning: false). Am Anfang des Chunks wurde ein Label vergeben, um im Fließtext auf das erstellte Diagramm verweisen zu können.

---
title: "Palmer Penguins"
author: "Sebastian Ottmann"
lang: de
format:
  html: default
---

# Zusammenhang zwischen Flossenlänge und Körpergewicht nach Geschlecht

In @fig-flossen-koerper wird der Zusammenhang zwischen Flossenlänge und Körpergewicht dargestellt. Das jeweilige Geschlecht der Pinguine wird farblich hervorgehoben.

```{r}
#| label: fig-flossen-koerper
#| fig-cap: "Zusammenhang zwischen Flossenlänge und Körpergewicht nach Geschlecht"
#| warning: false
#| echo: false

library(palmerpenguins)
library(ggplot2)

ggplot(data = penguins, aes(x = body_mass_g, y = flipper_length_mm, color = sex)) +
  geom_point()
```
Code language: PHP (php)

Gibt man das Dokument als HTML-Output aus, erhält man dann folgende Ausgabe:

HTML-Output eines Quarto-Dokuments mit einer Datenauswertung. Es wird ein Streudiagramm angezeigt von einem Pinguin-Datensatz.
Quarto-Output als HTML-Datei mit einer Datenauswertung

Tipps für die Arbeit mit Quarto

Zum Ende des Blog-Beitrages möchte ich noch ein paar praktische Tipps für die Arbeit mit Quarto geben.

Anpassung für deutsche Dokumente

Die Standardsprache für Quarto ist erst einmal Englisch. Möchte man ein Dokument in deutscher Sprache erstellen, sind einige Anpassungen im YAML-header nötig. Zum einen kann hier mit der Eigenschaft lang die Sprache auf Deutsch gestellt werden. Zum anderen können auch einzelne Begriffe direkt überschrieben werden. Nachfolgend ein Beispiel für einen YAML-Header, der als Dokumentsprache Deutsch und sprachliche Anpassungen beim Inhaltsverzeichnis und der Angabe, wann die letzte Änderung am Dokument stattgefunden hat, definiert:

---
title: "Hier den Titel des Dokuments einfügen"
author: "Name des Autors/der Autorin"
date: today
lang: de
language:
  de:
    title-block-published: "Letzte Änderung:"
format:
  html:
    self-contained: true
    toc: true
    toc-depth: 6
    toc-title: Inhaltsverzeichnis
---Code language: PHP (php)

Zitation anpassen

In Quarto können natürlich auch Zitationen und ein Literaturverzeichnis in das Dokument eingefügt werden. Hierzu muss allerdings die genutzte Literatur in einer BibLaTex (.bib) oder BibTeX (.bibtex)-Datei gespeichert werden. Aus den gängigen Literaturverwaltungsprogrammen wie Zotero oder Citavi ist ein Export von Literatur in das BibTex-Format nötig.

Im YAML-Header muss dann die entsprechende Datei angegeben werden. Weiterhin können auch spezifische Zitationsstyle angegeben werden. Unter anderem im Zotero Style Repository kann nach Zitierstilen gesucht und diese als .cls-Datei heruntergeladen werden. Die Datei muss dann im gleichen Verzeichnis wie die Markdown-Datei gespeichert werden.

Ausführliche Erläuterungen über die Möglichkeit des Zitierens in Quarto findet man hier.

Einheitliches Design mit brand.yml

Seit neustem hat Posit den sogenannten brand.yml veröffentlicht. Dies ist eine portable YAML-Datei, in der Gestaltungsrichtlinien hinterlegt werden können. Neben dem Logo können dies insbesondere Farben oder eine Schriftart sein. Der Vorteil dieser Datei ist, dass Quarto-Dokumente auf diese zugreifen können und man daher nicht mehr jedes Dokument individuell einrichten und formatieren muss.

Gerade für Organisationen, die einheitliche Gestaltungsrichtlinien haben, ist die Nutzung von brand.yml ein Vorteil. Nähere Informationen gibt es auf der Dokumentationsseite.

Daten-Storys mit Closeread

Eine schöne Erweiterung für Quarto ist Closeread, mit der man Daten-Storys erstellen kann. Closeread ist eine Erweiterung und auch ein eigenständiges Output-Format. Es wird eine HTML-Datei erzeugt, die sog. „scrollytelling“-Funktionen enthält. Hierbei kann der Nutzer die HTML-Seite herunterscrollen und es können Bilder angezeigt, vergrößert und mit begleitetem Text versehen werden. Ein Beispiel einer solchen Daten-Story ist hier zu finden.

Weitere Extension entdecken

Wie bereits geschrieben, ist Quarto über Extension erweiterbar. Eine Übersicht über bisher veröffentlichte Extension findet man auf der Quarto-Homepage. Auch besteht die Möglichkeit, eigene Extension zu entwickeln. Somit ist davon auszugehen, dass zukünftig die Anzahl an Quarto-Extension zunehmen wird.

Fazit

In diesem Blog-Beitrag wollte ich die Möglichkeiten des Reportings mit Quarto darstellen. Quarto ist in meinem Datenanalyse-Workflow zum Standardwerkzeug für die Erstellung von Reports (außer das Output-Format ist Word, siehe dazu weiter oben im Beitrag) und Präsentationen geworden. Durch die vielfältigen Formatierungsmöglichkeiten und die direkte Integration des Codes in das Dokument können zum einen Reports, Berichte und Präsentationen erstellt werden, die gut aussehen, aber die auch jederzeit reproduzierbar sind. Ein weiterer Vorteil ist, dass man auch nach einiger Zeit noch gut nachvollziehen kann, welche Auswertungen durchgeführt und welche Parameter hierfür ggf. auch gesetzt wurden.

Insofern kann ich Quarto nur jedem weiterempfehlen!

Gerne können Sie auch Ihre Erfahrungen in der Arbeit mit Quarto in die Kommentare schreiben.

Teile diesen Beitrag: