Download - R Knitr - generating reports
![Page 1: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/1.jpg)
Reports erstellen
Mark Heckmann University of Bremen, Germany
www.markheckmann.de
Version Januar, 2014
© CC BY-NC 2.0 DE
![Page 2: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/2.jpg)
Im R Buch
Eine Einführung in knitr finden Sie in meinem R Buch im Kapitel Ergebnisberichte erstellen
![Page 3: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/3.jpg)
out now!
![Page 4: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/4.jpg)
Creating reports in R
+ RStudio
![Page 5: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/5.jpg)
Using R markdown
• Markdown is a lightweight language to structure a document
• Install knitr package to start • R Markdown (Rmd) = R + Markdown • R code chunks can be directly included • Include R code between the following
tags
```{r} # Some R Code here ```
![Page 6: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/6.jpg)
Neues R Markdown Doc(.Rmd)
Neues .Rmd
![Page 7: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/7.jpg)
Chunk Tags !
Press to generate document
Insert tags
![Page 8: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/8.jpg)
Resultat
![Page 9: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/9.jpg)
Lege eine neues R Markdown Dokument an. Nutze den
Datensatz anscombe. Berechne eine lineare Einfachregression
von y1 auf x.!
Your turn
![Page 10: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/10.jpg)
Optionen von Markdown
![Page 11: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/11.jpg)
![Page 12: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/12.jpg)
http://www.rstudio.com/ide/docs/authoring/using_markdown
![Page 13: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/13.jpg)
Erweitere das R Dokument um Überschriften, Zwischenstriche,
eine Aufzählung und eine Tabelle. !
Your turn
![Page 14: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/14.jpg)
In-Line R Code
Das Ergebnis ist `r 1+5`!
R Code kann durch andere Tags direkt im Fließtext ausgewertet werden.
![Page 15: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/15.jpg)
Erstelle folgende Zeile!
Your turn
![Page 16: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/16.jpg)
Zwei Arten von Optionen
Chunk options Betreffen einzelnen R Chunk, können sich für jeden Chunk unterscheiden (z.B. Größe der ausgegeben Grafiken)
Package options Betreffen Grundlegendes des knitr Pakets (Ausgabebreite des Codes) http://yihui.name/knitr/options
![Page 17: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/17.jpg)
Chunk Optionen
echo: soll der R-Code angezeigt werden?
```{r echo=FALSE}!1+1!```!
![Page 18: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/18.jpg)
Chunk Optionen
fig.width: Breite des Plots in inch fig.width: Höhe des Plots in inch !```{r fig.width=10, fig.height=5}!plot(1:10, 1:10)!```! Argumente
werden durch ein Komma getrennt
![Page 19: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/19.jpg)
Chunk Optionen
comment: Zeichen vor der R-Ausgabe !```{r comment=“”}!!plot(1:10, 1:10)!```!
![Page 20: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/20.jpg)
Chunk Optionen
message: Infos zum Laden des Pakets anzeigen?
!
```{r message=FALSE}!library(car)!```!
![Page 21: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/21.jpg)
Erstelle einen Scatterplot der Variablen x1 und y1 aus dem Datensatz anscombe. Berechne eine Regression. Achte darauf, dass der R-Code im Output nicht sichtbar ist und die Größe des Plots angepasst wird. Ersetze das Zeichen vor der R-Ausgabe durch einen Smiley!
Your turn
Smiley
![Page 22: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/22.jpg)
Weitere chunk options
tidy (Logisch). Soll der R-Code gesäubert werden (Einrückungen etc.)?
eval (Logisch). Soll der Code ausgeführt werden?
Mehr ...
http://yihui.name/knitr/options
![Page 23: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/23.jpg)
Global chunk options
Die Chunk settings können auch global, d.h. für alle chunks auf einmal verändert werde.
!opts_chunk$set! !opts_chunk$set(comment=NA, !! ! ! ! ! ! ! ! ! !tidy=FALSE)!
![Page 24: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/24.jpg)
Global chunk options
Die Chunk settings können auch global, d.h. für alle chunks auf einmal verändert werde.
!opts_chunk$set! !opts_chunk$set(comment=NA, !! ! ! ! ! ! ! ! ! !tidy=FALSE)!
![Page 25: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/25.jpg)
(Global) package options
Die package settings können über die Funktion opts_knit$set() verändert werden
!opts_knit$set(width=120)!!Mehr: http://yihui.name/knitr/options
![Page 26: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/26.jpg)
Ich will aber
ein Word
Dokument
haben!!
![Page 27: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/27.jpg)
http://johnmacfarlane.net/pandoc/index.html
Pandoc ist ein Programm, das ein Markup Format in ein anderes überführt. Pandoc unterstützt sehr viele Formate: PDF, HTML, DOCX, TeX, ODT, Markdown usw.
![Page 28: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/28.jpg)
Von Markdown zu Word/ODT mit Pandoc & knitr
http://yihui.name/knitr/demo/pandoc/
library(knitr)!!pandoc('file.md', 'docx') # MS Word!pandoc(‘file.md', 'odt') # OpenDocument!
![Page 29: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/29.jpg)
Der Workflow Let‘s get styled!
![Page 30: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/30.jpg)
Neuer Look für mein HTML
Der Look der erzeugten HTML Datei wird über CSS festgelegt, z.B.
h1 { ! font-size: 2.2em; !}!!
Das knitr Standard-CSS ist aber eher funktional als ästhetisch
![Page 31: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/31.jpg)
Das CSS ändern
Die einfachste Variante: An den Anfang einer Markdown Datei das neue CSS einzufügen (innerhalb von style Tags).
<style>!h1 { ! !font-size:2.2em; !! !color:red;!}!</style>!!
Funktioniert, ist aber ein wenig clumsy.!
![Page 32: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/32.jpg)
Alternative: CSS-Datei einbinden
Um eine HTML Datei mit einer eigenen CSS Datei (custom.css) zu stylen kann das durch das Drücken des knitr Knopfes entstandenen Markdown Datei erneut mit dem Zusatz unsere CSS Datei zu nutzen, in HTML verwandelt werden
require(markdown)!!markdownToHTML('file.md', ’file.html', !! ! ! ! ! stylesheet='custom.css') !
![Page 33: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/33.jpg)
Alternative: CSS-Datei einbinden
Will häufiger eine bestimmte CSS Datei nutzen, kann dies für die die Dauer einer R Session durch Ausfühtung folgenden Befehls umgestellt werden.
options(rstudio.markdownToHTML = ! function(inputFile, outputFile) { ! require(markdown)! markdownToHTML(inputFile, outputFile, !! ! ! ! ! stylesheet='custom.css') !
}!) !
http://blogs.cetis.ac.uk/adam/2013/10/25/changing-style-knitr-and-markdown-in-rstudio/
![Page 34: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/34.jpg)
Vorher - Nachher
![Page 35: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/35.jpg)
+
![Page 36: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/36.jpg)
Select knitr
RStudio sagen, dass es knitr nutzen soll, um das
PDF herzustellen
![Page 37: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/37.jpg)
Neues R Sweave Dokument (.Rnw)
Neues .Rnw
![Page 38: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/38.jpg)
R chunk tags !
Press to generate PDF
Insert tags
Achtung: eine LaTeX engine muss installiert sein
(z.B. MikTeX, MacTeX)
![Page 39: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/39.jpg)
Resultat
![Page 40: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/40.jpg)
Die Chunk Options sind (fast) gleich
Die Chunk Options für .Rmd und .Rnw sind weitgehend identisch. Es gibt einige wenige Optionen die für jedes Format spezifisch sind: http://yihui.name/knitr/options
http://blogs.cetis.ac.uk/adam/2013/10/25/changing-style-knitr-and-markdown-in-rstudio/
![Page 41: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/41.jpg)
Ein theme anwenden (nur für PDFs)
<<echo=FALSE>>=!opts_knit$set(out.format = "latex")!knit_theme$set("autumn")!@!
knit_theme$get() # alle themes!
![Page 42: R Knitr - generating reports](https://reader031.vdocuments.site/reader031/viewer/2022020717/54c5df414a79598a118b45e4/html5/thumbnails/42.jpg)
Beispiel Layout aus meinem Buch