5. Einführung in RMarkdown

Vorwort zu working directory, Daten und Packages

Die Daten für dieses Tutorial werden über Github zur Verfügung gestellt. Wenn Sie den Code mit eigenen Daten reproduzieren wollten, ersetzen Sie die URL mit ihrem lokalen Dateipfad.

Definieren Sie in diesem Fall Ihren “working directory”, ihr Arbeitsverzeichnis.

setwd("YOUR/FILEPATH") 
# this will not work. if you want to use it, define a path on your computer

Dabei handelt es sich um den Dateispeicherort, wo Ihre Daten und Skripte gespeichert sind. Weitere Infos finden Sie hier.

Der Code für das Speichern von Daten und Ergebnissen ist in diesen Tutorials deaktiviert. Ersetzen Sie zum Speichern “YOUR/FILEPATH” mit ihrem gewünschten Dateipfad.

Wir haben den Code zum Laden von packages so geschrieben, dass diese installiert werden, sofern diees noch nicht auf Ihrem PC abgespeichert sind. Anschließend werden diese direkt geladen. Sofern nicht anderweitig spezifiziert werden die packages an einer standardmäßigen Stelle auf Ihrem Computer abgespeichert.

Was ist R Markdown

R Markdown ist ein s.g. “authoring framework for data science”, mit dem sich in R qualitativ hochwertige Berichte erstellen lassen. R Markdown Dokumente sind

  • sind vollständig reproduzierbar
  • können für zahlreiche Formate (u.a. PDF, HTML, Word) kompiliert werden (auch dynamische Formate)
  • ermöglichen die Anwendung von R Notebook
  • kombinieren erläuternden Text und Code-Schnipsel
  • Unterstützt zahlreiche Programmiersprachen (u.a. Python, C++ und SQL.)

Zuerst müssen Sie eine markdown Datei (.rmd) erstellen. Dies kann durch Klicken auf Datei -> Neues Dokument –> Rmarkdown geschehen. Dann fügen Sie Ihren Code und weitere Informationen hinzu. Alternativ können Sie auch eine vorhandene.rmd-Datei öffnen.

R Studio hat ein gutes cheat sheet zur Anwendung von RMarkdown erstellt.

Zunächst wird das Paket geladen

if (!require(rmarkdown)){install.packages("rmarkdown"); library(rmarkdown)}
if (!require(leaflet)){install.packages("leaflet"); library(leaflet)}
# bei erstmaliger Installation von rmarkdown muss tintex installiert werden.
# tinytex::install_tinytex()

Grundlegende Syntax oder Inline-Formatierung

Rmarkdown beinhaltet eine Reihe von Ausdrücken, die die Grundstruktur des Dokuments definieren:

Verwenden Sie ein Sternchen (*) für Betonung, wie z.B. kursiv oder ein doppeltes Sternchen für Fett.

Die Tilde (~) verwandelt Text in einen Index, nützlich z.B. beim Schreiben von chemischen Formeln: CO~2~, NO~2~, H~3~PO~4~ CO2, NO2, H3PO4.

Inline-Code kann durch die Verwendung von Backticks hervorgehoben werden: Es wurden nrow(cars) Autos untersucht.

Hyperlinks können mit Hilfe der folgenden Syntax eingefügt werden: [verknüpfte Phrase](http://example.com).

Bilder werden ähnlich geladen. Fügen Sie einfach ein Ausrufezeichen hinzu. Seien Sie vorsichtig mit Backslashes und fügen Sie das Dateiformat des Bildes hinzu. Bilder können lokal oder im Web gespeichert werden.

![Example of a local image]((https://www.fossgis.de/w/images/thumb/3/3a/Entwurf_fossgis2020-sticker-rund.png/600px-Entwurf_fossgis2020-sticker-rund.png)

Example of a web image

Für Fußnoten verwenden Sie eckige Klammern nach einem Einfügepunkt ^[], z.B. dieses Beispiel 1. Die Fußnote dient auch als Hyperlink.

Elemente des Blocksatzes

Überschriften

Der Hashtag # am Anfang einer Zeile implementiert eine Überschrift. Die Anzahl der Hashtags definiert auch die Ebene der Überschrift; einer ist die erste Ebene, zwei für die zweite Ebene usw. Um die Nummer aus der Kopfzeile auszuschließen (wie in H3-H6), fügen Sie {-} zur Überschrift hinzu.

H1

H2

H3

H4

H5
H6

Aufzählungen

Ungeordnete Listen können mit *, -, - oder + gestartet werden. Durch Einrückung kann eine Liste in eine andere verschachtelt werden.

  • one item
  • one item
  • one item
    • one more item
    • one more item
    • one more item

Geordnete Listen beginnen mit Zahlen und können auch durch Einrücken verschachtelt werden.

  1. the first item
  2. the second item
  3. the third item
    • unordered item
    1. sub item

Zitate

Um Zitate zu starten, verwenden Sie das Zeichen >:

“Without a systematic way to start and keep data clean, bad data will happen.”

— Donato Diorio

Tabellen

Markdown bietet keine spezielle Syntax für Tabellen. Stattdessen wird die HTML-Syntax verwendet. Einfache Tabellen trennen Spalten mit dem Symbol | und Überschriften von Inhaltszellen mit dem Symbol ----.

First Header Second Header
Content Cell Content Cell
Content Cell Content Cell

Um schön aussehende Tabellen zu erstellen, ist es am einfachsten, einen Tabellengenerator zu verwenden. Hier können Sie Ihre Tabelle wie in Excel anpassen. Dann können Sie den generierten Code kopieren und in Ihre markdwon-Datei einfügen:

R-Package Dependencies
geonames
ncdf4
geosphere
devtools/tamboRapi
dismo
eurostat
nasadata
owmr
rdwd
rnoaa
futureheatwaves
HiClimR
rWBclimate
rWind
SCI
iki.dataclim
rvest

Mathematische Formeln

Mathematische Ausdrücke wie Formeln können mit Hilfe der LaTeX-Syntax geschrieben werden. Es wird mit einem Paar Dollarzeichen gestartet. LaTex ist ein Open-Source Textsatzsystems. Es ist ähnlich zu Markdown, aber mit deutlich komplexeren Möglichkeiten, reine Textdateien in hochwertige Dokumente zu konvertieren. Da wir LaTex in diesem Kurs nicht verwenden werden, werden nur diese kurze Einführung und einige Beispiele für den Mathematikmodus von Latex gegeben:

Quadratwurzel \(\sqrt{x+y}\)

Integral \(\int\limits^{b}_{a} f(x) dx\)

Grichische buchstaben \(\pi \Phi \varepsilon\)

R Code in RMarkdown

Die Möglichkeit, Ihren R-Code in ein RMarkdown Dokument aufzunehmen und auszuführen, ist eine sehr leistungsfähige Option und der Hauptgrund, warum wir ihn verwenden. Sie können Ihre Analyse in R in hochwertige Dokumente, Berichte oder sogar Präsentationen verwandeln. Die Dokumente (und damit Ihre produzierten Textausgaben, Tabellen oder Grafiken) sind vollständig reproduzierbar, was auch für die Kommunikation Ihres Codes oder Ihrer Ergebnisse sehr wichtig ist.

Sie können Ihren R-Code einfach in ein markdwon-Dokument einbetten und es wird ausgeführt. Sie müssen RStudio lediglich mitteilen, dass der folgende Chunk als R-Code zu behandeln ist. Dies geschieht durch die Verwendung von ```` zwischen geschweiften Klammern und durch die Angabe, dass die r-Syntax verwendet wird.

```{r}

Beenden Sie den Code Chunk mit ```. Dazwischen wird der R-Code eingeben

Es gibt viele Dinge, die in einem Code chunk getan werden können: es können Textausgaben, Tabellen oder Grafiken erstellt werden. Sie haben eine feine Kontrolle über all diese Ausgaben durch Chunk-Optionen, die innerhalb der geschweiften Klammern bereitgestellt werden können. Dies dient dazu, die Ausgabe des Dokuments zu ändern. Standardmäßig werden der Code, alle Ausgaben in der Konsole und der Viewer in das Abschriften-Dokument aufgenommen:

m <- leaflet(options = leafletOptions(minZoom = 0, maxZoom = 18)) %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  addMarkers(lng=7.84505099, lat=47.9934184, popup="Werthmannstraße 4, CIP-Pool")
m  # Print the map

Die Ausgabe ## der Konsole wird über die Hashtags angegeben. Die Leser sind möglicherweise weder an diesen Informationen noch an dem von Ihnen verwendeten Code interessiert. Die folgenden Befehle bestimmen das Erscheinungsbild des jeweiligen Codeblocks in Ihrem Dokument:

  • include = FALSE verhindert, dass Code und Ergebnisse in der fertigen Datei erscheinen. R Markdown führt den Code weiterhin im Chunk aus, und die Ergebnisse können von anderen Chunks verwendet werden.
  • echo = FALSE verhindert, dass Code, aber nicht die Ergebnisse in der fertigen Datei erscheinen. Dies ist eine nützliche Möglichkeit, um Zahlen einzubetten.
  • message = FALSE verhindert, dass Meldungen, die durch Code erzeugt werden, in der fertigen Datei erscheinen.
  • warning = FALSE verhindert, dass Warnungen, die durch Code erzeugt werden, am Ende erscheinen.
  • fig.cap = “….” fügt den grafischen Ergebnissen eine Beschriftung hinzu.

Die vollständige Liste mit R Markdown Referenzen Einstellungen für die Codedarstellung findet sich hier.

Chunk Optionen

{r, echo=FALSE, include = TRUE, message = FALSE, warning = FALSE} zeigt nur die Ergebnisse an. Hier den Inhalt des Objekts x:

## [1] 42

Optionen für Abbildungen können auch sehr hilfreich sein

Figure 1: Figure: Example of figure generated by R code in rmarkdown with chunk options

EXKURS: andere Programmiersprachen in R Markdown nutzen

R Markdown unterstützt viele andere Programmiersprachen wie SQL, Python und CSS. Die meisten Sprach-Engines werden über das Paket knitr geladen. Eine vollständige Liste der language engines finden Sie hier:

names(knitr::knit_engines$get())
#library(reticulate, lib.loc= "T:/AG2019/R/win-library/3.5")
#use_python("C:/Python27/ArcGIS10.6/python")
#scipy <- import("Numpy")
#scipy$amin(c(1,3,5,7))

Ein Beispiel in R

x <- 42
print(x)

Das gleiche Beispiel in Python

Damit ein Python-Chunk ausgeführt werden kann, müssen wir den Standort der Python-Engine angeben. Wir können diejenige verwenden, die mit ArcGIS geliefert wird. Diese kann an einem anderen Speicherort auf Ihrem Computer gespeichert sein. Möglicherweise muss auch zuerst Python installiert werden……..

```{python}

x = 42 * 2

print(x) ``

Für weitere Informationen darüber, ob Sie Python über R wählen sollten, besuchen Sie die Seite “Data Science Wars: R vs Python”.


  1. Dies ist eine Fußnote.↩︎

Previous
Next