R Language
Rapporten maken met RMarkdown
Zoeken…
Tabellen afdrukken
Er zijn verschillende pakketten waarmee gegevensstructuren kunnen worden uitgevoerd in de vorm van HTML- of LaTeX-tabellen. Ze verschillen meestal in flexibiliteit.
Hier gebruik ik de pakketten:
- knitr
- xtable
- pander
Voor HTML-documenten
---
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)
```
Voor PDF-documenten
---
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)
```
Hoe kan ik voorkomen dat het commentaar vóór elke tafel wordt afgedrukt?
options(xtable.comment = FALSE)
Inclusief LaTeX Preample-opdrachten
Er zijn twee mogelijke manieren om LaTeX-preambuleopdrachten (bijvoorbeeld \usepackage
) in een RMarkdown-document op te nemen.
1. Met behulp van de YAML-optie 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. Inclusief externe opdrachten met 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!
Hier zijn de inhoud van include.tex dezelfde drie opdrachten die we hebben opgenomen met header-includes
.
Een geheel nieuw sjabloon schrijven
Een mogelijke derde optie is om uw eigen LaTex-sjabloon te schrijven en deze met een template
. Maar dit omvat veel meer van de structuur dan alleen de preambule.
---
title: "My Template"
author: "Martin Schmelzer"
output:
pdf_document:
template: myTemplate.tex
---
Inclusief bibliografieën
Een bibtex-catalogus kan eenvoudig worden opgenomen in de YAML- bibliography:
Een bepaalde stijl voor de bibliografie kan worden toegevoegd met biblio-style:
De referenties worden aan het einde van het document toegevoegd.
---
title: "Including Bibliography"
author: "John Doe"
output: pdf_document
bibliography: references.bib
---
# Abstract
@R_Core_Team_2016
# References
Basis R-markdown documentstructuur
Brokken met R-markdown-code
R-markdown is een markdown-bestand met ingesloten blokken R-code, chunks genoemd . Er zijn twee soorten R-code chunks: inline en block .
Inline chunks worden toegevoegd met behulp van de volgende syntaxis:
`r 2*2`
Ze worden geëvalueerd en hun uitvoerantwoord ingevoegd.
Blok brokken hebben een andere syntaxis:
```{r name, echo=TRUE, include=TRUE, ...}
2*2
````
En ze komen met verschillende mogelijke opties. Dit zijn de belangrijkste (maar er zijn er nog veel meer):
- echo (boolean) bepaalt of de code in het stuk in het document wordt opgenomen
- include (boolean) controls of de output in het document moet worden opgenomen
- fig.width (numeriek) stelt de breedte van de uitvoercijfers in
- fig.height (numeriek) stelt de hoogte van de outputcijfers in
- fig.cap (character) stelt de figuurbijschriften in
Ze zijn geschreven in een eenvoudige tag=value
indeling zoals in het bovenstaande voorbeeld.
Voorbeeld van R-markdown-document
Hieronder ziet u een eenvoudig voorbeeld van een R-markdown-bestand dat de manier illustreert waarop R-codebrokken zijn ingesloten in r-markdown.
# 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"))
```
R-markdown converteren naar andere formaten
Het R knitr
pakket kan worden gebruikt om R-stukken in het R-markdown-bestand te evalueren en er een regulier markdown-bestand van te maken.
De volgende stappen zijn nodig om het R-markdown-bestand om te zetten in pdf / html:
- Converteer R-markdown-bestand naar
knitr
bestand metknitr
. - Converteer het verkregen markdown-bestand naar pdf / html met behulp van gespecialiseerde tools zoals pandoc .
Naast het bovenstaande knitr
pakket heeft wrapper-functies knit2html()
en knit2pdf()
die kunnen worden gebruikt om het uiteindelijke document te produceren zonder de tussenstap van het handmatig converteren naar het markdown-formaat:
Als het bovenstaande voorbeeldbestand is opgeslagen als income.Rmd
kan het worden geconverteerd naar een pdf
bestand met de volgende R-opdrachten:
library(knitr)
knit2pdf("income.Rmd", "income.pdf")
Het uiteindelijke document is vergelijkbaar met het document hieronder.