R Language
Erstellen von Berichten mit RMarkdown
Suche…
Tabellen drucken
Es gibt mehrere Pakete, die die Ausgabe von Datenstrukturen in Form von HTML- oder LaTeX-Tabellen ermöglichen. Sie unterscheiden sich meist in der Flexibilität.
Hier verwende ich die Pakete:
- Knitr
- xtabelle
- Kuppler
Für HTML-Dokumente
---
title: "Printing Tables"
author: "Martin Schmelzer"
date: "29 Juli 2016"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
library(xtable)
library(pander)
df <- mtcars[1:4,1:4]
```
# Print tables using `kable`
```{r, 'kable'}
kable(df)
```
# Print tables using `xtable`
```{r, 'xtable', results='asis'}
print(xtable(df), type="html")
```
# Print tables using `pander`
```{r, 'pander'}
pander(df)
```
Für PDF-Dokumente
---
title: "Printing Tables"
author: "Martin Schmelzer"
date: "29 Juli 2016"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
library(xtable)
library(pander)
df <- mtcars[1:4,1:4]
```
# Print tables using `kable`
```{r, 'kable'}
kable(df)
```
# Print tables using `xtable`
```{r, 'xtable', results='asis'}
print(xtable(df, caption="My Table"))
```
# Print tables using `pander`
```{r, 'pander'}
pander(df)
```
Wie kann ich stoppen, dass xtable den Kommentar vor jeder Tabelle druckt?
options(xtable.comment = FALSE)
Einschließlich LaTeX Preample-Befehle
Es gibt zwei Möglichkeiten, LaTeX-Präambelbefehle (z. B. \usepackage
) in ein RMarkdown-Dokument aufzunehmen.
1. Verwendung der YAML-Option header-includes
:
---
title: "Including LaTeX Preample Commands in RMarkdown"
header-includes:
- \renewcommand{\familydefault}{cmss}
- \usepackage[cm, slantedGreek]{sfmath}
- \usepackage[T1]{fontenc}
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, external=T)
```
# Section 1
As you can see, this text uses the Computer Moden Font!
2. Einschließen externer Befehle mit includes
in_header
---
title: "Including LaTeX Preample Commands in RMarkdown"
output:
pdf_document:
includes:
in_header: includes.tex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, external=T)
```
# Section 1
As you can see, this text uses the Computer Modern Font!
Der Inhalt von Includes.tex sind die gleichen drei Befehle, die wir mit header-includes
.
Eine ganz neue Vorlage schreiben
Eine mögliche dritte Möglichkeit besteht darin, eine eigene LaTex-Vorlage zu schreiben und sie der template
hinzuzufügen. Dies deckt jedoch viel mehr als nur die Präambel ab.
---
title: "My Template"
author: "Martin Schmelzer"
output:
pdf_document:
template: myTemplate.tex
---
Einschließlich Bibliographien
Ein bibtex-Katalog kann leicht in die YAML-Optionsbibliographie aufgenommen werden bibliography:
Ein bestimmter Stil für die Bibliographie kann mit dem biblio-style:
hinzugefügt werden biblio-style:
Die Referenzen werden am Ende des Dokuments hinzugefügt.
---
title: "Including Bibliography"
author: "John Doe"
output: pdf_document
bibliography: references.bib
---
# Abstract
@R_Core_Team_2016
# References
Grundlegende R-Markdown-Belegstruktur
R-Markdown-Codeabschnitte
R-Markdown ist eine Markdown-Datei mit eingebetteten Blöcken von R-Code, die als Chunks bezeichnet werden . Es gibt zwei Arten von R-Code- Blöcken : Inline und Block .
Inline- Blöcke werden mit der folgenden Syntax hinzugefügt:
`r 2*2`
Sie werden ausgewertet und ihre Ausgabe-Antwort eingefügt.
Block Stücke haben eine andere Syntax:
```{r name, echo=TRUE, include=TRUE, ...}
2*2
````
Und sie haben verschiedene Möglichkeiten. Hier sind die wichtigsten (aber es gibt viele andere):
- echo (boolean) steuert, ob der Code in chunk in das Dokument aufgenommen wird
- include (boolean) Steuerelemente, ob die Ausgabe im Dokument enthalten sein soll
- fig.width (numerisch) legt die Breite der Ausgabefiguren fest
- fig.height (numerisch) legt die Höhe der Ausgabefiguren fest
- fig.cap (Zeichen) legt die Bildunterschriften fest
Sie werden in einem einfachen tag=value
Format wie im obigen Beispiel geschrieben.
Beispiel für ein R-Markdown-Dokument
Nachfolgend finden Sie ein grundlegendes Beispiel für eine R-Markdown-Datei, die veranschaulicht, wie R-Code-Blöcke in R-Markdown eingebettet werden.
# Title #
This is **plain markdown** text.
```{r code, include=FALSE, echo=FALSE}
# Just declare variables
income <- 1000
taxes <- 125
```
My income is: `r income ` dollars and I payed `r taxes ` dollars in taxes.
Below is the sum of money I will have left:
```{r gain, include=TRUE, echo=FALSE}
gain <- income-taxes
gain
```
```{r plotOutput, include=TRUE, echo=FALSE, fig.width=6, fig.height=6}
pie(c(income,taxes), label=c("income", "taxes"))
```
Konvertierung von R-Markdown in andere Formate
Mit dem R knitr
Paket können R-Blöcke in der R-Markdown-Datei ausgewertet und in eine reguläre Markdown-Datei umgewandelt werden.
Die folgenden Schritte sind erforderlich, um die R-Markdown-Datei in pdf / html umzuwandeln:
- Konvertieren R-Abschlags - Datei Abschlags - Datei mit
knitr
. - Konvertieren Sie die erhaltene Markdown-Datei mit speziellen Tools wie Pandoc in pdf / html.
Neben dem obigen knitr
Paket gibt es die Wrapper-Funktionen knit2html()
und knit2pdf()
, mit deren Hilfe das endgültige Dokument ohne Zwischenschritt der manuellen Umwandlung in das Markdown-Format erstellt werden kann:
Wenn die obige Beispieldatei als income.Rmd
gespeichert wurde, kann sie mit den folgenden R-Befehlen in eine pdf
Datei konvertiert werden:
library(knitr)
knit2pdf("income.Rmd", "income.pdf")
Das endgültige Dokument wird dem folgenden ähneln.