---
title: "Initial setup"
author: "Jonathan Harrington, Johanna Cronenberg"
output: 
  bookdown::html_document2:
    number_sections: TRUE
    toc: true
    theme: flatly
    highlight: pygments
---

<style>
div.col {background-color: #ffd5c0; border-radius: 5px; padding: 20px;}
body {font-size: 16pt;}
h1 {font-size: 24pt;}
h2 {font-size: 22pt;}
p.caption {font-size: 12pt; text-align: justify;}
code.sourceCode {font-size: 16pt;}
</style>

# Die Software R and Rstudio

- Laden Sie [die Statistik Software R](https://ftp.fau.de/cran/) herunter und installieren Sie sie.

- Laden Sie außerdem [RStudio](https://rstudio.com/products/rstudio/download/#download) herunter und installieren Sie es.

# Ein Verzeichnis auf Ihrer Festplatte anlegen

Legen Sie ein Verzeichnis auf Ihrer Festplatte an, das wir für diesen Kurs verwenden werden. Unten habe ich ein Verzeichnis mit Namen `ipsR` auf meiner Festplatte angelegt -- Sie können aber einen anderen Namen verwenden.

![](img/setup1.png)

# Rstudio starten
indem Sie das RStudio-Icon klicken.

# Ein Projekt erzeugen
Wählen Sie dafür das Verzeichnis, das Sie in 1. oben angelegt haben. Siehe bitte die Abbildung unten:

![](img/setup2.png)

Sie müssen ein Projekt nur einmal anlegen. Bei einem Neustart müsste RStudio wieder in diesem Projektverzeichnis starten. Sollte das nicht der Fall sein, oder sollten Sie das Projekt geschlossen haben, können Sie es wieder wie folgt öffnen: 
![](img/setup2b.png)

Sollten Sie Probleme beim Erstellen des Projekts haben, empfehlen wir Ihnen [diese Video-Kurzanleitung.](https://www.youtube.com/watch?v=hKoSJGWnFFA)

# Packages installieren

In dem Console-Fenster von RStudio können Sie die folgenden Packages installieren. *Das müssen Sie nur einmal machen*:

```{r, eval = F}
# install the following packages
install.packages(c("Rcpp", "remotes", "knitr", "afex",
                   "tidyverse", "magrittr",
                   "rmarkdown", "emuR", "gridExtra", 
                   "emmeans", "broom", "lmerTest", 
                   "pbkrtest", "MuMIn", "wrassp", "ezANOVA"))
```

<div class="col">
**Weiterführende Infos: Installation von R Paketen**

Sollte der obige Befehl den Fehler installation of package had non-zero exit status werfen, hat die Installation nicht geklappt. Für Windows kann es sein, dass Sie in diesem Fall zusätzlich [Rtools](https://cran.r-project.org/bin/windows/Rtools/) installieren müssen. Für MacOS müssen Sie ggf. die XCode command-line tools installieren und/oder resetten. Öffnen Sie dafür ein Mac Terminal und führen Sie folgende Befehle aus:

```{bash, eval = F}
xcode-select --install
# Should the R packages installation still not work:
xcode-select --reset
```

</div>

# RStudio starten und beenden

Eine Session beginnt, wenn man RStudio startet. Man beendet eine Session entweder mit `Session > Quit Session` in der Werkzeugleiste oder mit `q()` oder `Strg+Q` oder `Ctrl+Q`. Die Session endet außerdem automatisch, wenn Sie RStudio schließen. Verifizieren Sie, dass Sie Rstudio starten und beenden können.  Sie werden dann gefragt, ob Sie das workspace image speichern wollen. **Für diesen Kurs, bitte den Workspace nicht speichern (`Don't save`).**


# Für Studierende von P 12.1 Programmiersprache R und P 12.2 Statistik

Laden Sie aus [dieser Webseite](https://www.phonetik.uni-muenchen.de/studium_lehre/lehrmaterialien/R_speech_processing/R_prog_intro/index.html) die `Rmd` Datei unter `1.1 Objects and their manipulation` herunter. Speichern Sie diese Datei auf Ihrem Rechner in einem leicht zugänglichen Verzeichnis Ihrer Wahl. Starten Sie Rstudio, und laden Sie diese Datei in Rstudio durch `File -> Open File`. Sie müssten jetzt in Rstudio die Datei `01_Rintro.Rmd` sehen.

# R Lernen: Community nutzen

Es gibt eine sehr große und hilfsbereite R Community, die Ihnen das Programmieren lernen mit R erleichtern wird. Hier ein paar gute Links und Befehle, falls Sie mal nicht weiter wissen:

- [Stack Overflow](https://stackoverflow.com/questions/tagged/r): Ein Blog, auf dem Sie höchstwahrscheinlich eine Antwort auf Ihre Frage zu R finden werden. Am einfachsten googlen Sie Ihre Frage auf Englisch; die Antwort eines Mitglieds von Stack Overflow wird bei den ersten Suchergebnissen dabei sein.

- [Hadley Wickham's "R for Data Science"](https://r4ds.had.co.nz/): Hadley Wickham ist der Chief Programmer des "tidyverse", mit dem wir uns noch auseinandersetzen werden. Seine Bücher sind sehr verständlich, gut strukturiert und kurzweilig zu lesen.

- Cheatsheets: Das sind PDFs, die eine Funktionsübersicht mit Erklärungen und ggf. Beispielen in absoluter Kurzform bieten. Sie finden einige Cheatsheets in der obersten Werkzeugleiste unter `Help > Cheatsheets`. Insbesondere die ersten drei sind für Sie interessant. Ansonsten kann man Cheatsheets auch googlen und findet dann z.B. [Data Transformation with dplyr](https://raw.githubusercontent.com/rstudio/cheatsheets/master/data-transformation.pdf) oder diese sehr ausführliche [Reference Card](https://cran.r-project.org/doc/contrib/Short-refcard.pdf).

- Vignetten: Zu einigen essentiellen Paketen gibt es so genannte "Vignetten", das sind meist HTMLs oder PDFs, die die Autoren eines Pakets geschrieben haben. Sie können mit folgender Konsoleneingabe nach Vignetten suchen:

```{r, eval = F}
# zum Beispiel zu einer Library aus dem tidyverse:
vignette("dplyr")
```

- In RStudio können Sie sich über die Eigenschaften einer Funktion informieren, indem Sie im Panel unten rechts mit dem Tab `Help` die gewünschte Funktion ins Suchfeld eingeben. Sie erhalten dann u.a. Informationen über die Argumente der Funktion und Beispiele. Dasselbe erreichen Sie über diese Konsoleneingaben (beispielhaft für Hilfe zur Funktion `getwd()`):

```{r, eval = F}
?getwd
help("getwd")
```

- Sollten Sie sich nicht an dem Namen einer Funktion genau erinnern, können Sie statt dessen einen Keyword eingeben (z.B. für Funktionen, die die Wörter `spline` irgendwo enthalten):

```{r, eval = F}
apropos("spline")
```

- Hier sind weitere Übungen zu `R` in der Form von Fragen-und-Antworten:

```{r, eval = F}
install.packages('swirl')
library(swirl)
swirl()
```

`ggplot2` ist eine beliebte Funktion, um Abbildungen zu erzeugen. Hier gibt es einige nützliche Links für die Erzeugung von Abbildungen: 

- Das Kapitel [Data Visualisation](https://r4ds.had.co.nz/data-visualisation.html) in Hadley Wickham's "R for Data Science"

- [Cookbook for R](http://www.cookbook-r.com/Graphs/)

- [Cheatsheet ggplot2](https://rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf)

- [Stack Overflow](https://stackoverflow.com/questions/tagged/ggplot2?sort=faq)

# Statistik in R: Literatur

Wenn Sie mehr Informationen zu benötigen, seien Ihnen folgende Werke ans Herz gelegt:


- Johanna Cronenberg: Programming in R: An Introduction for Phoneticians [en](https://www.phonetik.uni-muenchen.de/~jmh/lehre/basic_r/english/book-output/) 
[de](https://www.phonetik.uni-muenchen.de/~jmh/lehre/basic_r/deutsch/book-output/)

- Bodo Winter's "Statistics for Linguists: An Introduction using R": Ein Buch voller hervorragender Erklärungen zu allen wichtigen Themen der Inferenzstatistik. Ist über die Uni-Bib digital verfügbar.

- Stefan Gries' "Statistics for Linguistics with R: A Practical Introduction": Nützlich für die Entscheidungsfindung, welches statistische Modell zu den eigenen Daten und der eigenen Fragestellung passt. Da das Buch von 2009 ist, ist der Code z.T. veraltet, aber aus statistischer Sicht ist der Inhalt noch aktuell. Ist über die Uni-Bib digital verfügbar.

- Harald Baayen's "Analyzing Linguistic Data: A Practical Introduction to Statistics": Einführung für eher Fortgeschrittene. Hier ist der R Code ebenfalls oft veraltet, aber die Erklärungen und Beispiele zu den Statistikgrundlagen sind hilfreich. Als physisches Exemplar in der Unibib verfügbar.

# R Markdown

R Markdown ist eine Art von Textdokument in den sogenannten *code snippets* eingebettet, und ausgeführt werden können. Ein solches Dokument enthält häufig mehr Text als Code. Sie können ein R Markdown erstellen mit `File > New File > R Markdown` und es ist Konvention, das Dokument mit der Dateiendung .Rmd abzuspeichern. Eine R Markdown Datei wird im Normalfall in ein anderes Format umgewandelt ("ge-knitted"), z.B. in eine HTML, eine PDF, oder sogar ein Word Dokument. Dies geschieht entweder über den Wollknäuel-Button mit der Aufschrift Knit oder mittels:

```{r, eval = F}
library(rmarkdown)
# where x.Rmd is the document to be knitted
render("x.Rmd")
```

Zum Beispiel aus [dieser Webseite](https://www.phonetik.uni-muenchen.de/studium_lehre/lehrmaterialien/R_speech_processing/index.html) laden Sie herunter `setup.Rmd` (die Datei, die Sie jetzt lesen) in Ihr Projektverzeichnis.

Laden Sie auch herunter und entpacken Sie [die Abbildungen, die Sie für die Konvertierung benötigen](https://www.phonetik.uni-muenchen.de/studium_lehre/lehrmaterialien/R_speech_processing/img.zip).

Ihr Projektverzeichnis müsste jetzt ein Ordner genannt `img` enhalten, sowie `.Rmd` Dateien wie hier:

![](img/setup4.png)

Öffnen Sie `setup.Rmd` in RStudio (zum Beispiel `File > Open File` dann `setup.Rmd` wählen) und den Knit Button betätigen, um die entsprechende HTML-Datei zu erzeugen, die auch in Ihrem Projektverzeichnis dadurch abgelegt wird:

![](img/setup5.png)

<div class="col">
Hier gibt es noch einige Hinweise zu Markdown.

Sie können Codesnippets mit dem grünen Pfeil rechts ausführen, wie unten gezeigt:

![](img/setup6.png)

Weitere Informationen zu der Erstellung von Text in Markdown sind wie folgt:

\# Überschrift: Mit einem Hashtag bekommt man die größtmögliche Überschrift; je mehr Hashtags man benutzt, desto kleiner wird die Überschrift.

\*\*fett\*\*: Mit doppeltem Asterisk vor und hinter einer Textpassage wird der Text fett gesetzt.

\*kursiv\*: Mit einfachem Asterisk wird der Text kursiv.

\`code\`: die einfachen rückwärts gewandten Anführungszeichen heben den darin enthaltenen Text hervor; das wird üblicherweise für Code oder Variablen benutzt, wenn man sich außerhalb eines Code Snippets befindet; dieser Code kann aber nicht ausgeführt werden!

\`\`\`: Die dreifachen rückwarts gewandten Anführungszeichen markieren den Anfang und das Ende eine Code Snippets (auch Code Block genannt). Dazwischen darf nur Code geschrieben werden; Text muss mit einem Hashtag als Kommentar verfasst werden. Am Anfang des Code Snippets wird außerdem in geschweiften Klammern angegeben, welche Programmiersprache man im Code Block schreibt (in unserem Fall: {r}).

Noch mehr Informationen dazu finden Sie im [Cheatsheet for R Markdown](https://www.rstudio.org/links/r_markdown_cheat_sheet) (insb. S. 2, linke Spalte).

</div>

# Für Nutzer von emuR

## Libraries

Laden Sie `emuR` und `wrassp`:

```{r, eval = F}
library(emuR)
library(wrassp)
```

## Standardbrowser

Stellen Sie ein, dass Google Chrome Ihr Standardbrowser ist. Das ist notwendig, um die Emu WebApp aus R heraus zu starten.

![](img/setup0.png)

## Verifizierung

Verifizieren Sie, dass alles funktioniert, indem Sie die folgenden Befehle ausführen:

```{r, eval=F}
# Demo Datenbank kreieren
create_emuRdemoData(dir = tempdir())
# laden
ae = load_emuDB(file.path(tempdir(), "emuR_demoData", "ae_emuDB"))
# anschauen
serve(ae, useViewer=F)
# schließen Sie den Browser um fortzufahren
```

Der dritte Befehl `serve(ae, useViewer=F)` sollte das folgende Bild in Ihrem Browser produzieren.

![](img/setup3.png)


