11 Addendum 1: Spreading the Word

📢 Zielsetzung dieser Einheit

Diese Einheit soll einen kurzen Überblick darauf geben, wie man mittels RStudio Berichte zu seinen Analysen erstellen kann.


11.1 Prolog

Wie so oft, gibt es nicht die “eine” Möglichkeit, um aus seine Analysen aus Rstudio in schicke Berichte zu überführen. Bevor wir uns in diese Möglichkeiten vertiefen wollen, zunächst noch ein paar Worte zur Frage nach dem generellen “Warum?”.

Werfen wir dazu einen Blick auf den in Einheit 4 behandelten idealtypischen Analysewerkflow:

Ein idealtyptischer Analyseworkflow

Spätestens bei den letzten beiden Schritten rückt die Erstellung von Berichten und Präsentationsmaterialien in den Vordergrund. Da sich viele Fragestellungen oftmals nicht innerhalb eines Nachmittags bearbeiten lassen, ist eine laufende Dokumentation des Arbeitsfortschritts (inkl. offener Fragen etc.) die beste Grundlage für solche Berichte. Um uns bei beim Dokumentieren und Erstellen von Berichten zu unterstützen, bietet RStudio mehrere Möglichkeiten, Ergebnisse in unterschiedliche Ausgabeformate zu überführen. Die Spannweite reicht dabei von einfachen Reports, über Notebooks und Slides bis hin zu ganzen Buchprojekten, Blogs oder interaktiven Webanwendungen.

Welches dieser Ausgabeformate das “richtige” ist, hängt von vielen Faktoren ab:

  • dem Zielpublikum;

  • den zur Verfügung stehenden technischen Ressourcen;

  • dem verfügbaren zeitlichen Rahmen;

  • persönlichen Vorlieben;

  • etc.

Unabhängig von der konkreten Entscheidung für ein Ausgabeformat, wollen wir hier einen Überblick auf einige der populärsten Formate wagen:

11.2 Keep it simple & compile

Die wohl einfachste Art ein bestehendes Skript in RStudio mitsamt der darin erzeugten Daten und Abbildungen als Rohbericht abzulegen, bietet die Funktion “Compile Report” in Rstudio:

Über diese Funktion kann können wir dieses einfache Skript …

# Create the data for the chart
H <- c(7,12,28,3,41)

# Plot the bar chart
barplot(H)

… als in eine HTML-Datei

… oder eine Word-Datei umwandeln:

11.3 Vom Skript zum Markdown

R Markdown ermöglicht es, Markdown Anweisungen mit R-Code zu kombinieren.

🤔 Aber was ist Markdown?

Markdown ist eine vereinfachte Auszeichnungssprache mit dem Ziel, den Inhalt eines Dokuments von seiner Darstellung zu trennen und gleichzeitig offene, leicht lesbare Textdokumente zu nutzen. Wikipedia bietet einen guten Einstieg in das Thema Markdown. Ein beleibtes Tool um Markdown-Dokumente in unterschiedlichen Ausgabeformate zu überführen ist Pandoc.

Aber zurück zu R Markdown:

R Markdown nutzt also die Auszeichnungselemente von Markdown und erweitert diese (über das Package knitr) um sgn. “Code-Chunks”, also ausführbare R Statements. Diese Erweiterung soll eine offene und nachvollziehbare Dokumentation von Analysen ermöglichen.

Wanna know more?

👉 Wie bei vielen Aspekten von R so auch hier:
Probieren Sie es einfach einmal aus. Der schnellste Weg dazu:

11.4 Ein Tipp: R Notebooks

R Notebooks sind R Markdown-Dokumente, die den Fokus auf das Verknüpfen von Dokumentation und das interaktive Ausführen von Code-Chunks legen. Das dafür in RStudio präferierte Ausgabeformat HTML ermöglicht per default

  • das Ein- und Ausblenden der eingebetteten R-Statements sowie
  • den Download des R Notebooks (als ausführbare RMD-Datei) selbst.

In RStudio können Sie so über das Viewer-Fenster stets einen Blick auf Ihre Auswertung werfen und laufend Änderungen an Ihrem Analysecode vornehmen:

Da Notebooks eine spezielle Spielart von R Markdown sind, stehen die bekannten Ausgabeformate HTML, PDF und DOCX zur Verfügung.

👉 Auch gilt wieder wieder:
Probieren geht über Studieren 😉 Am schnellsten via:

11.5 Den Nutzung von R Markdown vorbereiten

Um den Export von R Markdown-Dokumenten besser zu verstehen, lohnt sich ein kurzer Blick auf die dafür notwendigen Schritte und Packages. Der Export von R Markdown erfolgt für HTML- und DOCX-Output in zwei, für einen PDF-Export in drei Schritten:

Die notwendigen Schritte und Packages für die Ausgabe von R Markdown-Dokumenten in unterschiedliche Ausgabeformate (Quelle: Eigene Überarbeitung 2020 von: A.u., 2019)

  1. Das Package knitr übernimmt die Einbettung von Code-Chunks in ein Markdown-Dokument (Dateierweiterung: MD).

  2. Dieses Markdown-Dokument kann danach mittels des Packages rmarkdown in

    • ein Latex-Dokument (.tex);
    • ein MS Word-Dokument (.docx) oder
    • ein HTML-Dokument

    überführt werden.

  3. Spezialfall PDF: Das Package tinytex ermöglicht es, Latex-Dokumente in PDF zu überführen. Hintergrundwissen zum Thema LaTex findet sich bei Wikipedia.

11.5.1 Installation der benötigten Packages

Um R Markdown nutzen zu können, müssen die zuvor beschriebenen Packages installiert werden.

11.5.1.1 Das Package knitr installieren

Um zu prüfen, ob das Package bereits installiert ist, versucht man am einfachsten dieses zu laden:

library(knitr)

Sollte ein Fehler auftreten muss das Package installiert werden:

install.packages("knitr")

11.5.1.2 Das Package rmarkdown installieren

Dieses Package sollte bereits in der RStudio-Installation enthalten sein. Ein kurzer Test, ob das Package verfügbar ist, schadet jedoch nicht:

library(rmarkdown)

Sollte eine Fehlermeldung auftreten, muss das Package installiert werden:

install.packages("rmarkdown")

11.5.1.3 Für den PDF Export: Das Package tinytex installieren

👉 Ein freundlicher Hinweis:
Das Erzeugen von PDF-Dateien ist nicht trivial. Aus persönlicher Erfahrung stößt man bei dem hier beschriebenen Vorgang zur Installation von tinytex oftmals auf unvorhersehbare Hindernisse. Ein Blick in diverse R-Foren zeigt, dass man damit nicht alleine ist.

Was man dabei nicht vergessen sollte: Der Export von R Markdown-Dokumenten in PDF-Dateien kann natürlich auch über den “Umweg” eines HTML- oder DOCX-Exports erfolgen. Speziell im Falle eines DOCX-Exportes können so noch Änderungen eingearbeitet und anschließen ein Export in eine PDF-Datei vorgenommen werden.

Zunächst überprüfen wir wieder, ob das tinytex Package und seine pdflatex-Komponenten bereits installiert sind:

library(tinytex)
Sys.which('pdflatex')
##                                                               pdflatex 
## "C:\\Users\\Kami\\AppData\\Roaming\\TinyTeX\\bin\\win32\\pdflatex.exe"

👉 Hint:
Je nach Betriebssystem (hier: Windows) sieht die Pfadangabe zu den pdflatex-Komponenten natürlich anders aus.

Sollte der Library-Aufruf in einem Fehler münden und/oder keine pdflatex-Komponenten gefunden werden, muss das Package installiert werden:

install.packages('tinytex')

Im Gegensatz zu den meisten Packages, muss tinytex nach seiner Installation noch einige Dateien systemweit zur Verfügung stellen. Dazu muss einmalig die systemweite Installation angestoßen werden:

tinytexinstall_tinytex()

Danach empfiehlt es sich, RStudio zu schließen und neu zu starten. Ob die Installation erfolgreich war, verrät ein erneutes Überprüfen des Pfades zu den pdflatex-Komponenten:

Sys.which('pdflatex')
##                                                               pdflatex 
## "C:\\Users\\Kami\\AppData\\Roaming\\TinyTeX\\bin\\win32\\pdflatex.exe"

Nun können in einem letzten Schritt über das Menü “Tools > Global Options…” in der Sektion “Sweave” folgende Einstellungen vorgenommen werden:

  • Typeset LaTeX into PDF using: pdfLaTeX
  • Use tinytex when compiling .tex files

11.6 There ist more …

Mit Hilfe diverser Packages können noch weitere (meist komplexere) markdownbasierte Ausgabeformate realisiert werden. Ob diese Formate für den eigenen Gebrauch sinnvoll erschienen, hängt nicht zuletzt von den einleitend im Prolog genannten Überlegungen ab.

Hier eine Auswahl:


🏆 Nun wissen wir, dass …

  • Markdown ziemlich praktisch ist.

Und macht (nicht nur) den Captain happy 😎