DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1...

31
Dynamische Dokumente mit R RUB Methodenzentrum Dipl. Soz.wiss Sebastian Jeworutzki 09.02.2018

Transcript of DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1...

Page 1: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Dynamische Dokumente mit RRUB Methodenzentrum

Dipl. Soz.wiss Sebastian Jeworutzki09.02.2018

Page 2: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Gliederung

1. Einleitung

2. Dynamische Dokumente mit R

3. Grundlagen

4. Tabellen

5. Kooperation & Versionierung

6. Chunk-Optionen

7. Literatur und weitere Infos

1

Page 3: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Einleitung

Page 4: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Vorgehen bei der Datenanalyse

• Oftmals werden Auswertungen in einem Statistikprogrammausgeführt und die Ergebnisse in eine Textverarbeitung kopiert.

• Teilweise werden Tabellen und Grafiken noch einem drittenProgramm (bspw. Tabellenkalkulation) formatiert.

• Dieser Prozess ist fehleranfällig und hat einige Nachteile

2

Page 5: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Vorgehen bei der Datenanalyse

1. Fehleranfällig durch manuelle Bearbeitungsschritte2. Zeitaufwendig, da der Benutzer die Übertragung (mehrfach)vornehmen muss

3. Die Schritte sind in der Regel nicht nachvollziehbar,insbesondere bei Software mit rein grafischerBenutzeroberfläche

4. Analyse, Auswertung und Schreiben geschehen nebeneinander:Wird hier der letzte Bearbeitungsstand berücksichtigt?

Lösung: Analyse, Aufbereitung und Auswertung in einem Dokument.

3

Page 6: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Bruchstellen vermeiden!

• Die Wahl der Anwendung ist immer eine Abwägung zwischen• Zusatznutzen,• Mehrkosten,• Einarbeitungsaufwand und• möglichen Problemen beim Transfer von Daten und Ergebnissen

• Die großen Statistikpakete decken viele Bereiche ab, in R undStata auch über von Nutzern bereitgestellte Erweiterungspakete

• Teilweise lassen sich die Funktionen spezialisierter Programmeaus dem Statistikprogramm aufrufen (bspw. GRASS GIS aus R)

4

Page 7: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Was fördert Reproduzierbarkeit?

• Für Datenaufbereitung, Auswertungen und Produktion vonTabellen und Grafiken sollte bevorzugt ein Programm verwendetwerden

• Ausgaben sollten dabei möglichst bereits in der Syntaxformatiert werden, um manuelle Nacharbeit und damitverbundene Fehlerquellen zu vermeiden

• Gleichzeitig gibt es für jede Aufgabe spezialisierte Werkzeuge,die einzelne Analyse- und Arbeitsschritte möglicherweisebesser beherrschen

5

Page 8: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

R hilft!

R kann dabei helfen viele dieser Bruchstellen zu vermeiden,

• indem statistische Analysen und Visualisierung in einemProgramm erfolgen

• indem die Auswertung, Dokumentation und Berichtserstellungin einem Dokument erfolgen

• indem diese Dokumente leicht versioniert werden können

6

Page 9: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Dynamische Dokumente mit R

Page 10: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Dynamische Dokumente & Literal Programming

• Für R gibt es drei grundlegende Möglichkeiten, dynamischeDokumente zu erzeugen: Markdown- oder LateX-Dokumentesowie spezielle Pakete zur Erzeugung von Berichten

• In diesem Workshop stehen LaTeX-Dokumente im Fokus – vieleslässt sich jedoch auch auf Markdown-Dokumente übertragen

• Für beide Dokumentarten ist das R-Paket »knitr« von Yihui Xiegrundlegend:

• Eine umfangreiche Dokumentation und viele Beispiele gibt es aufder Knitr-Seite

• Eine kurze Einführung gibt Browman mit knitr in a knutshell

• Für Markdown-Dokumente wird zusätzlich das Paket»rmarkdown« benötigt. Die wichtigsten Markdown-Befehle beiRStudio rmarkdown.rstudio.com

7

Page 11: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

R Markdown

• Markdown ist eine einfache Auszeichnungsprache• RStudio enthält das Programm »pandoc«, mit demMarkdown in andere Formate umgewandelt wird

• Knitr erlaubt neben der Einbindung von R auchandere Programmiersprachen, etwa Python

8

Page 12: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

R Markdown

9

Page 13: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Markdown oder LaTeX?

Markdown LaTeXSyntax reduziert komplexAusgabeformat DOCX, PDF, HTML PDF1Textformatierung einfach komplexGrafiken Pixelgrafiken Pixel- & VektorgrafikenTabellen einfach2 komplexLiteraturverwaltung ja ja

1 Docx und HTML über nachträgliche Konvertierung2 Das Paket flextable erlaubt auch die Erstellung komplexerer Tabellen. Dafür wird je-doch pandoc 2.0 benötigt, welches nicht in RStudio enthalten ist.

10

Page 14: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

IDE für R

Viele Entwicklungsumgebungen für R unterstützen mittlerweile dasErstellen von Markdown und LaTeX-Dokumenten mit knitr

• RStudio• Emacs/ESS• Vim mit dem Nvim-R Plugin• Lyx unterstützt ebenfalls knitr• Knitr gibt es auch Online bei ShareLaTeX

Eine umfangreiche Übersicht findet man auf der knitr-Homepage

11

Page 15: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Grundlagen

Page 16: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

knitr

• Das R-Paket knitr ist die Grundlage für dieErstellung dynamischer Dokumente in R

• Die Integration von Code und Text erfolgt über sog.»Chunks«: <<meinChunk, eval=F, echo=T>>=

# R-Code ... @

• Innerhalb der spitzen Klammern << >>= wird einName für den »Chunk« und weitere Optionengesetzt.

• Innerhalb des »Chunks« steht der auszuführendeR-Code.

12

Page 17: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Ein Beispieldokument

• Um den Umgang mit knitr auszuprobieren, finden Sie unterz:/Dyndok/basics.Rnw eine Beispieldatei

• Öffnen Sie die Datei per Doppelklick mit RStudio• Viele Dokumente lassen sich ohne weitere Anpassungen inRStudio übersetzten: pdflatex und xelatex, sowie bibtex werdenunterstützt

• Aber …

13

Page 18: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Ein Beispieldokument

• …das Beispiel setzt XeLaTeX und Biblatex voraus. Um, dasDokument zu kompilieren, müssen Sie die PDF-Erzeugunganpassen und, falls Sie MikTeX nutzen, einen Perl-Interpreterinstallieren

• Mit folgendem Befehl setzen Sie latexmk als LaTeX-Kommando.Der Aufruf muss pro Sitzung einmal manuell ausgeführt oder inRprofiles aufgenommen werden.Sys.setenv(RSTUDIO_PDFLATEX = Sys.which("latexmk"))

• Optionen für das LaTeX-Programm können nun in der Dateilatexmkrc vorgenommen werden (Dokumentation)# Generate pdf using xelatex (-xelatex)$pdf_mode = 1;$pdflatex = 'xelatex -shell-escape %O %S'

14

Page 19: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

RStudio anpassen

• Zusätzlich muss RStudio für die Verwendung von knitrkonfiguriert werden.

• Öffnen Sie dazu den Einstellungsdialog:Tools Global Options Sweave

• Setzten Sie die Option »Weave Rnw files using« auf »knitr«

15

Page 20: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Tabellen

Page 21: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

R Pakete für Tabellen

• Bei der Erstellung von Tabellen gehen zwei Komponenten ein:ein R-Programm und eine LaTeX-Tabellen-Umgebung

• Für die wichtigsten LaTeX-Umgebungen gibt es R-Pakete, dievollständige Tabellen produzieren:

• xtable• hmisc• stargazer• tables• huxtable

• Nützlich sind darüber hinaus speziellere LaTeX-Umgebungenwie etwa cals, zu denen kein R-Paket verfügbar ist

16

Page 22: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

LaTeX nach Word

• Der Wege über LaTeX→ OpenOffice→ Word liefert m.A. nachebenfalls sehr gute Resultate

• Das LaTeX-Dokument sollte möglichst wenig spezielle Paketenutzen und auf ausgefeilte Formatierungen verzichten

• Unterstützt werden u.a. die Pakete csquotes, booktabs und color

• Wird biblatex verwendet, sollte das Dokument vor derKonvertierung einmal komplett übersetzt werden

mk4ht oolatex document.tex

17

Page 23: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Kooperation & Versionierung

Page 24: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Git und Gitlab

• Eines der verbreitetsten Versionsverwaltungen ist Git• Dienste wie Github oder Gitlab unterstützen die gemeinsameArbeit an Dokumenten

• Das NOC der RUB bietet eine frei nutzbare Gitlab-Installation an:git.noc.rub.de

18

Page 25: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Chunk-Optionen

Page 26: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Optionen für »Chunks«

Allgemeine Optioneneval=TRUE R-Code ausführenecho=TRUE R-Code im Dokument ausgebeninclude Code ausführen, aber nichts ausgebencache=FALSE Ergebnisse zwischenspeichern und nur bei

Änderung neu berechnendependson=c('chunknames') Wenn sich 'chunknames' ändert, diesen

Chunk neu berechnenengine='R' Interpreter für den Code im Chunk. Optio-

nen: R, python, SQL

Textausgaberesults='markup' Ergebnis in einer LaTeX-Umgebung ausge-

ben oder mit 'asis' unverändert lassen

19

Page 27: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Optionen für »Chunks«: Grafikausgabe

Grafikausgabefig.show='asis' Grafiken werden erzeugt und LaTeX-Code zur

Einbindung ausgegeben. 'hide' verhindert dieAusgabe des LaTeX-Codes

fig.align='default' Ausrichtung der Grafik; left, right, centerfig.cap, fig.scap,fig.subcap

Abbildungsbeschriftung, Kurzbeschriftung undBeschriftung für \subfloat

Grafikerzeugungdev='pdf' R-Device für die Grafikausgabe. Weitere Optio-

nen (u.a.): cairo_pdf, tikzDevice, png, jpeg. Eskönnen auch mehrere Ausgaben definiert wer-den: dev=c('pdf', 'jpeg')

dpi=72 Druckauflösung für die Grafikdev.args=NULL list mit Argumenten für das Ausgabede-

vice: dev.args=list(colormodel = 'cmyk')oder dev.args=list(pdf = list(colormodel ='cmyk')), jpeg=list(quality=90))

fig.width=7,fig.height=7

Breite und Höhe des Plots in Zoll. Bei Pixelgrafi-ken basierend auf: dpi=72

20

Page 28: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Optionen global definieren

• Die meisten Chunk-Optionen können auch am Anfang desDokumentes global definiert werden.

• Dazu wird das Paket knitr explizit geladen und die Optionen wiefolgt gesetzt:library(knitr)opts_chunk$set(cache = TRUE, # Alles cachen

comment = NA, # Ausgabe nichtauskommentieren↪→

width = 60, # Anzahl der Zeichen proZeile↪→

tidy = FALSE, # R-Code Ausgabe nichtformatieren↪→

fig.align = 'center', # Grafiken zentrierenfig.width = 7, # Grafiken 7" breitfig.height = 5, # und 5" hochwarning = FALSE, # Warnmeldungen unterdrückenmessage = FALSE) # Hinweise unterdrücken

• Weitere Standards lassen sich über die R-Basis-Befehlefestlegen:options(digits = 1, # Auf eine Nachkommastelle runden

OutDec = ',') # Dezimaltrennzeichen setzen 21

Page 29: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Literatur und weitere Infos

Page 30: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Alternativen zu knitr

• Für stärker standardisierte Dokumente bieten die Pakete rtf,officer

• Stata 15 ermöglicht die Ausgabe von Tabellen und Grafiken inWord Dokumente. Die Integration von Text und Programm istjedoch nicht so unkompliziert wie mit R (SSC smrtbl)

22

Page 31: DynamischeDokumentemitR - Ruhr University Bochum · Ausgabeformat DOCX,PDF,HTML PDF1 Textformatierung einfach komplex Grafiken Pixelgrafiken Pixel-&Vektorgrafiken Tabellen einfach2

Literatur

Xie, Yihui (22. Juni 2015): Dynamic Documents with R and Knitr,Second Edition. url: https://www.crcpress.com/Dynamic-Documents-with-R-and-knitr-Second-Edition/Xie/p/book/9781498716963 (besucht am31. 01. 2018).

Xie, Yihui (30. Jan. 2018): Bookdown: Authoring Books and TechnicalDocuments with R Markdown. url:https://bookdown.org/yihui/bookdown/ (besucht am31. 01. 2018).

23