Konzepte des ‘Open Science’ & Einführung in R Markdown und Quarto

DS3 - Explorative Datenanalyse & Data Mining

Saskia Otto

Universität Hamburg, IMF

Wintersemester 2023/2024

Lernziele

Am Ende dieser VL- und Übungseinheit werden Sie

  • ein grundlegendes Verständnis der Prinzipien von Open Science, einschließlich Transparenz, Reproduzierbarkeit und Zugänglichkeit von Forschungsergebnissen haben.
  • das Prinzip des Forschungskompendiums kennen und ein R Paket zur praktischen Umsetzung.
  • Fähigkeiten zur nahtlosen Integration von Code und Dokumentation in wissenschaftlichen Arbeiten besitzen, um den Reproduzierbarkeitsansatz von Open Science zu unterstützen.
  • die Syntax von R Markdown und Quarto kennen, um dynamische, reproduzierbare Dokumente im HTM-, PDF- und Word-Format erstellen zu können.
  • Erweiterungspakete kennen, welche Vorlagen für z.B. R Markdown- und Quarto-basierte Poster und Abschlussarbeiten bereitstellen.

Projektmanagement in der Wissenschaft

Viele Projekte starten mit ein paar Notizen, etwas Code, einzelnen Manuskriptabschnitten und irgendwann werde diese zusammengefügt…

Projektmanagement in der Wissenschaft

Nachteil

Ein schlechter Projektentwurf gefährdet die

  • Datenintegrität
  • transparente Dokumentation
  • Wiederaufnahme zu einem späteren Zeitpunkt
  • Übertragbarkeit des Projekts an andere
  • Reproduzierbarkeit

Reproduzierbarkeit

Reproduzierbarkeit in der Wissenschaft | 2012

Reproduzierbarkeit in der Wissenschaft | immer noch aktuell

Eine Nature Umfrage in 2016 | >1500 Forscher befragt

Wozu Reproduzierbarkeit?

Reproducibility has the potential to serve as a minimum standard for judging scientific claims when full independent replication of a study is not possible. | Roger D. Peng (2011)

3 Arten der Reproduzierbarkeit

Empirische

Detaillierte Informationen zu

  • experimentellem Design
  • Datenerhebung
  • Untersuchungspopulation

Ist meist gewährleistet durch die Bereitstellung der Daten selbst.

Statistische

Detaillierte Informationen zu

  • Wahl des statistischen Tests
  • Modellparameter
  • Grenzwerte, Signifikanzniveau

Rechnergestützte

Detaillierte Informationen zu

  • Code
  • Software
  • Hardware
  • Implementierungsdetails

Daten- und Codemanagement

Daten- und Codemanagement

Daten

  • Storage / Archiving
  • Metadaten
  • Bezeichnung von Dateien

Code

  • Code Syntax
  • literate programming
  • Versionskontrolle

Datenmanagement | Chaos

Machen Sie sich klar, …

  • Sie werden mit mehreren Dateien arbeiten.
  • es können gaaanz viele sein.
  • die Dateien werden sich über die Zeit ändern.
  • die Dateien werden in Beziehung zueinanderstehen.

→ es wird also kompliziert!

Datenmanagement | Lösung

Die richtige Wahl des Dateinamens sollte beinhalten

  • was es ist,
  • warum es existiert und
  • wie es in Beziehung steht.

Datenmanagement | Dateinamen

Schlecht

meinabstract.docx

Max’s Dateiname verwendet Leerzeichen und Zeichensetzung.xlsx

Abbildung 1.png

Abb 2.png

JW7d^(2sl/niemalsdiesedateilöschen*.txt

Gut

2020-06-26_Abstract-fuer-paper1.docx

max-dateinamen-werden-besser.xlsx

abb01_scatterplot-vortrag-length-vs-weight.png

fig02_histogram-talk-attendance.png

1986-01-28_rohdaten_ctd_alkor.txt

Datenmanagement | 3 Grundprinzipien

maschinenlesbar

Vermeide

  • Leerzeichen → Bindestrich oder Unterstrich nutzen!
  • Zeichensetzung (’,.;)
  • Akzente und Umlaute (`öä)
  • zu viele Großbuchstaben

Warum? Einfacher zu

  • suchen
  • filtern
  • importieren
  • extrahieren

menschenlesbar

  • Name sollte Inhalt darstellen
  • Verwendung von sog. slugs wie in URLs

01_import-plaice.r

02_clean-plaice.r

03_explore-sampling.r

helper01_load-counts.r

gut sortierbar

  • Nummern an den Anfang setzen
  • ISO8601 Standard für das Datum verwenden
  • Nullen bei 1- oder 2-stelligen Zahlen an den Anfang setzen

2020-06-25_alkor287_ctd_01.csv

2020-06-25_alkor287_ctd_02.csv

2020-06-26_alkor287_ctd_03.csv

Codemanagement | Style guide

lesbar

  • Den Code so kurz wie möglich und so komplex wie nötig halten.
  • Konsistent sein.
  • Leerzeichen und Zeileneinzüge zur besseren Lesbarkeit nutzen.
  • Ausreichend (mit “#”) kommentieren → nicht was, sondern warum.
  • Als Zuweisungsoperator <- (NICHT =) nutzen.
  • Gut beschreibende Namen für Objekte, Funktionen verwenden.
  • Funktionen in linearer Leserichtung ordnen.
  • Schwer lesbare Befehle vermeiden.

logisch

  • Redundanz vermeiden.
  • Funktionscode und Metadaten trennen.
  • Die richtigen Datenstrukturen verwenden.

effizient

  • Langsamen und schnellen Code trennen.
  • Output von langsamem Code als .Rdata speichern und es anschließend wieder einlesen.

robust

  • Auf Fehler kontrollieren.
  • Tests für eigene Funktionen schreiben.

Das Forschungskompendium

Das Forschungskompendium | Ein Konzept seit 2004

For various reasons, it is important, if not essential, to integrate the computations and code used in data analyses, methodological descriptions, simulations, etc. with the documents that describe and rely on them. | Gentleman and Temple Lang (2004)

Aber wie kommen wir nun von hier…

Grafik von Karthik Ram: rstudio::conf 2019 Vortrag

… nach hier?

Grafik von Karthik Ram: rstudio::conf 2019 Vortrag

Vortrag | A guide to modern reproducible data science with R

Forschungskompendium | 3 Grundprinzipien

  1. Dateien sollten nach geltenden Konventionen organisiert sein:
    • hilft anderen, die Projektstruktur sofort zu erkennen.
    • unterstützt die Entwicklung und Anwendung von Werkzeugen, die auf eine ganz bestimmte Struktur bauen.
  2. Klare Trennung von Daten, Methode und Ausgabedateien, wobei die Beziehung zwischen ihnen deutlich gemacht werden sollte.
  3. Angabe der Computerumgebung, die für die Analyse verwendet wurde (Betriebssystem, Programme, Versionen!).

Forschungskompendium | Ordnerstruktur

Kleine Kompendia

Medium Kompendia

Große Kompendia

R Paket SCIproj

  • Ein R-Paket für die Initialisierung und Organisation eines wissenschaftlichen Projekts nach den Richtlinien der reproduzierbaren Forschung.
  • SCIproj bietet die Funktion create_proj(), die ein neues Projekt als R-Paket mit einer leicht modifizierten Ordnerstruktur erstellt:
Installation von GitHub
remotes::install_github("saskiaotto/SCIproj")
library("SCIproj")
create_proj("my_research_project")

Kommunikationstools in R:
R Markdown vs. Quarto

Von R zum finalen Bericht

Wie kann man aus R heraus Ergebnisse in verschiedensten Ausgabeformaten präsentieren?

Von R zum finalen Bericht mithilfe von

  • Das Paket ‘rmarkdown’ wird mit RStudio automatisch installiert.
  • Quarto muss ggfs. seperat installiert werden: https://quarto.org/docs/download/
  • In R Markdown- und Quarto-Dokumenten kann die Markup-Sprache Markdown mit R/Python/SQL/.. Input und Output kombiniert werden:
    • verweben z.B. Abbildungen und Tabellen mit Text zu einem Bericht, Präsentationen oder Webseiten → vollständig reproduzierbare Dokumente
  • Vorteil von R Markdown:
    • seit langem etabliert mit breiter Palette von Erweiterungen und Vorlagen (blogdown, bookdown, posterdown)
    • einfacher Wechsel von R Notebooks zu R Markdown Dokumenten
  • Vorteil Quarto:
    • flexibler (mehr Programmiersprachen, Integration mit mehr IDEs)
    • ansprechendere Standardlayouts und mehr Optionen
    • hilfreiche Webseite

Quarto ist die nächste Generation von RMarkdown.

Wie funktioniert das?

Verschiedene Prozesse werden in einer einzigen ‘render’ Funktion gekoppelt:

Basierend auf dem R Markdown Cheatsheet (unter CC-BY-SA Lizenz)

Eine kurze Einführung

Wie wird eine .Rmd-Datei erstellt?

Wahl des Ausgabeformat

Struktur einer .Rmd Datei

Übersetzung in das Ausgabeformat

Bei ‘Preview in Viewer Pane’ erscheint die Vorschau für HTML-Dokumente direkt in RStudio.

Vom R Notebook zu R Markdown

Das Standardlayout ist allerdings etwas schlicht.

Wie wird eine .qmd-Datei erstellt?

Strukturunterschiede

Die Struktur ist fast wie bei R Markdown.

Von .Rmd zu .qmd konvertieren

Einfach nur die Dateierweiterung ändern und das Ausgabeformat.

Markdown Syntax

HTML vs. Markdown vs. R Markdown Syntax

Quelle: Donovan, T., Brown, M., & Katz, J. (2015). Vermont Cooperative Fish and Wildlife Research Unit R Projects: R for Fledglings, https://www.uvm.edu/rsenr/vtcfwru/R/fledglings/08_Markdown.html (unter CC-BY-NC-ND 4.0 Lizenz)

R Markdown Website hilfreich

R Markdown Cheatsheet

Hilfreiche Dokumente: Cheatsheet und Reference Guide

Ein guter Start: Quarto’s Website

Quarto Cheatsheet

Wichtige Voraussetzung für PDFs

Achtung

Für die PDF-Variante muss LaTeX auf dem Rechner installiert sein (gilt auch für UHHformats und alle anderen Pakete mit PDF Templates)!

Abhängig von Ihrem Betriebssystem gibt es verschiedene Distributionen, die Sie verwenden können (siehe www.latex-project.org), für Mac z.B. MacTeX.

Eine einfache Möglichkeit, LaTeX auf jeder Plattform zu installieren, ist das tinytex R-Paket:

install.packages('tinytex')
tinytex::install_tinytex()
# Nach dem Neustart von R Studio, bestätigen Sie, dass Sie LaTeX haben mit 
tinytex:::is_tinytex() 

Vorlagen | UHHformats Paket 1

R Markdown- und Quarto-Vorlagen für HTML-, PDF- und Microsoft Word-Ausgabeformate, welche auf das Design der Universität Hamburg zugeschnitten sind:

Vorlagen | UHHformats Paket 3

remotes::install_github("uham-bio/UHHformats")

R Markdown Vorlagen

Nach Paketinstallation und Neustart von R Studio werden die Vorlagen unter ‘From Template’ gelistet.

Quarto Vorlagen

library(UHHformats)
create_quarto_doc(template = "html")
create_quarto_doc(template = "pdf_simple")
create_quarto_doc(template = "pdf_report")
create_quarto_doc(template = "word")

→ Die Funktion erstellt ein neues Unterverzeichnis innerhalb des aktuellen Verzeichnisses, das die qmd. Datei und alle zugehörigen Dateien enthält.

Vorlagen | UHHformats Paket 2

Als Orientierungshilfe und um den Start zu erleichtern, enthalten alle Vorlagen bereits Text, Abbildungen, Tabellen, Formeln und Referenzen!

Vorlage für Bachelor- und Masterarbeit | 1

Das UHHthesis Paket

Erstellt eine Bookdown-Projektstruktur mit deutschen oder englischen PDF- und Word-Arbeitsvorlagen der Universität Hamburg (UHH), die den Einreichungsstandards der MIN-Fakultät für Bachelor- und Masterarbeiten entsprechen.

remotes::install_github("uham-bio/UHHformats")

Zu Bookdown und dem R Paket siehe: https://bookdown.org/

Vorlage für Bachelor- und Masterarbeit | 2

Das UHHthesis Paket

Nach Paketinstallation und Neustart von R Studio..

Vorlage für Bachelor- und Masterarbeit | 3

Das UHHthesis Paket

Auch hier enthalten alle Vorlagen bereits Text, Abbildungen, Tabellen, Formeln und Referenzen als Starthilfe!

Poster erstellen mit posterdown

Aktuelle Vorlagen im HTML Format

Installation von CRAN : install.packages("posterdown")

Installation von GitHub: remotes::install_github("brentthorne/posterdown")

Übungsaufgabe

Übung

  • Erstellungen von Dokumenten verschiedener Ausgabeformate (R Markdown/Quarto Standard und UHHformats)
  • Umwandlung der eigenen Fallstudie in
    • ein Standard HTML-Dokument (R Markdown)
    • ein UHHformats HTML-Dokument (R Markdown)
    • ein posterdown HTML-Poster (R Markdown)

Detaillierte Anleitung (auch zur Vorbereitung) gibt es im Aufgabenblatt Übungswoche10_Aufgabenbeschreibung.pdf (Moodle).

Fragen..??

Total konfus?

Hilfreiche Webseiten, Bücher, Videos…

Bei weiteren Fragen: saskia.otto(at)uni-hamburg.de

Creative Commons License
Diese Arbeit is lizenziert unter einer Creative Commons Attribution-ShareAlike 4.0 International License mit Ausnahme der entliehenen und mit Quellenangabe versehenen Abbildungen.