Links & Weiterführendes

%>% vs. |>

In diesem Kurs haben wir die Pipe %>% aus {tidyverse} (streng genommen aus dem Paket {magrittr}) kennen gelernt. Mit dem Update auf R 4.1 wurde in base R ebenfalls eine Pipe |> eingeführt und Hilfeseiten usw. ersetzen langsam, aber sicher %>% durch |>. Für (nahezu) alle Anwendungen, die wir kennengelernt haben, verhalten sich beide Pipes identisch - und nachdem am BIBB R die R-Version 4.0.5 zur Verfügung steht, haben wir uns an ‘alte Variante’ gehalten. Letztlich spricht aber nichts dagegen, nach einem Update auf |> umzusteigen - oder einfach bei %>% zu bleiben.

Unter anderem steht hier mehr zu den Unterschieden zwischen beiden Pipes. Außerdem bietet dieser Blogbeitrag einen guten Überblick zu den Fallstricken beim Umstieg von %>% auf |>.

Anonyme Funktionen: .x vs. /(x)

Mit R 4.1.0 wurde in base R eine neue ‘anonymous function short hand’ eingeführt, welche die ‘formula syntax’ Schreibweise ~mean(.x) ablöst, die wir in Kapitel 6 kennen gelernt haben. In der neuen base R wäre das \(x) mean(x) geschrieben.

Aus der {purrr} release notes für Version 1.0.0 (Dezember 2022): We believe that it’s better to use these new base tools because they work everywhere: the base pipe doesn’t require that you load magrittr and the new function shorthand works everywhere, not just in purrr functions. Additionally, being able to specify the argument name for the anonymous function can often lead to clearer code.

Dementsprechend würde die Anwendung in across() wie folgt aussehen:

sat_small <- haven::read_dta("./data/BIBBBAuA_2018_suf1.0.dta",n_max = 16) %>% 
    select(F1450_04,F1450_05,F1450_06) %>% 
    slice(12:16)

# formula syntax
sat_small %>% 
  mutate(across(matches("F1450"),~mean(.x)))
# anonymous function short hand
sat_small %>% 
  mutate(across(matches("F1450"),\(x) mean(x) ))

In diesem Skript habe ich auf die bisherige ‘formula syntax’ Schreibweise zurück gegriffen, da aktuell noch die meisten Hilfeseite mit dieser Syntax arbeiten.

Quarto

Quarto ist eine Erweiterung/Weiterentwicklung von RMarkdown. Allerdings erfordert Quarto eine separate Installation, mehr Infos.

Einführungen in R

Eine Sammlung von Lehrskripten und Unterlagen aus verschiedenen Kontexten zum selbst weiter lernen:

R for Data Science das Standardwerk für Datenanalysen mit {tidyverse} - sehr intuitive Einführung, Fokus auf Data Science

Problemorientiere Einführungen in spezifische Anwendungen “do more with R”

Ten simple rules for teaching yourself R

Moderne Datenanalyse mit R: Deutschsprachige Einführung in {tidyverse}

R for the Rest of Us bietet viele Tutorials und freie Kurse an, unter anderem auch viele YouTube Videos.

Stata 2 R richtet sich alle Anwender*innen von Stata, die auf R umsteigen möchten. Allerdings wird hier anstelle des {tidyverse} das Paket {data.table} für die Datenaufbereitung gezeigt. {data.table} ist auf der einen Seite sehr schnell, jedoch von der Syntaxlogik her etwas umständlicher als das {tidyverse}. Für alle, die mit sehr großen Datensätzen arbeiten lohnt es sich aber, {data.table} auszuprobieren.

Beispiel für vollständiges Paper geschrieben mit RMarkdown

Paper zu einem Beispieldatensatz, komplett in R Markdown geschrieben

Hier findet ihr den Source-Code

Cheatsheets

Eine Sammlung an Cheatsheets für eine breite Palette an Anwendungen gibt es hier.

{ggplot2}

Eine große Stärke von ggplot2 sind die zahlreichen Erweiterungen, welche beispielsweise ermöglichen

Eine Übersicht zu Erweiterungspakteten für {ggplot2} findet sich hier

Auch The R Graph Gallery bietet eine hervorragende Übersicht zu Darstellungsmöglichkeiten mit Syntaxbeispielen für {ggplot2}.

Fortgeschrittene Anwendung von lapply()/map() mit selbstgeschriebenen Funktionen

regex

Für die Arbeit mit Textvariablen sind regular expressions (regex) eine große Hilfe. Damit lassen sich beispielsweise Textabschnitte nach bestimmten Zeichenfolgen durchsuchen, diese ersetzen usw. Der Blog von Joshua C. Fjelstul ist ein guter Einstieg. Darüber hinaus gibt es ein hilfreiches Cheatsheet zu regex in R und das regex -Paket {stringr}

Weiteres

{easystats} bietet eine Sammlung von Paketen, welche statische Auswertungen erleichtern und vereinheitlichen. Gleichzeitig geht diese Vereinheitlichung aber mit einer beschränkteren Flexibilität einher - das ist Geschmackssache und kommt auf den Anwendungsfall an. Wir haben aus dem easystats-Universum unter anderem {performance} und {effectsize} kennengelernt.

Ereigniszeitmodelle / Event History Modellung / Survival Analysis